当前位置: 首页 > article >正文

深度学习篇---深度学习框架


文章目录

  • 前言
  • 第一部分:框架简介
    • 1. PyTorch
      • 简介
      • 特点
        • 动态计算图
        • 易于上手
        • 强大的社区支持
        • 与Python的集成度高
      • 核心组件
    • 2. TensorFlow
      • 简介
      • 特点
        • 静态计算图
        • 跨平台
        • 强大的生态系统
        • Keras集成
      • 核心组件
    • 3. PaddlePaddle
      • 简介
      • 特点
        • 易于使用
        • 高性能
        • 工业级应用
        • 丰富的预训练模型
      • 核心组件
  • 第二部分:基本操作
    • PyTorch 基本操作
    • TensorFlow 基本操作
    • PaddlePaddle 基本操作
  • 总结


前言

以上就是今天要讲的内容,本文仅仅简单介绍了Pytorch、TensorFlow、Paddlepaddle三个深度学习框架以及其基本操作。


第一部分:框架简介

1. PyTorch

简介

简介: PyTorch是由Facebook的人工智能研究团队开发的一个开源机器学习库,主要用于应用如计算机视觉和自然语言处理等领域的深度学习。它是一个动态计算图框架,提供了灵活性和易用性。

特点

动态计算图

动态计算图(Dynamic Computation Graph): PyTorch使用动态图,使得调试和实验更加灵活。

易于上手

易于上手: PyTorch的API设计接近Python原生代码,易于理解和编写。

强大的社区支持

强大的社区支持: PyTorch拥有一个活跃的社区,提供了大量的预训练模型和教程

与Python的集成度高

与Python深度集成: PyTorch可以很好地与Python的其他库(如NumPy)集成

核心组件

torch.Tensor: 提供了多维数组(张量)的操作。
torch.nn: 包含了
神经网络的各种层和激活函数

torch.optim: 提供了各种优化算法
torch.utils.data: 用于数据加载和预处理

2. TensorFlow

简介

简介: TensorFlow是由Google Brain团队开发的另一个开源机器学习库,它支持广泛的机器学习任务,并且可以在多种平台上运行

特点

静态计算图

静态计算图(Static Computation Graph): TensorFlow使用静态图,有利于优化和部署。

跨平台

跨平台: TensorFlow可以在不同的设备上运行,包括CPU、GPU和TPU

强大的生态系统

强大的生态系统: TensorFlow拥有丰富的工具和库,如TensorBoard、TensorFlow Lite等。

Keras集成

Keras集成: TensorFlow 2.x版本中,Keras成为了其高级API,使得构建和训练模型更加简单。

核心组件

tf.Tensor: 表示计算图中的数据
tf.keras: 提供了高层次的API来构建和训练模型
tf.data: 用于数据输入管道
tf.train: 提供了优化器和其他训练工具

3. PaddlePaddle

简介

简介: PaddlePaddle(简称PD)是由百度开发的一个深度学习平台,旨在让研究人员和开发人员能够轻松地构建各种深度学习模型。

特点

易于使用

易于使用: PaddlePaddle提供了丰富的API,使得模型构建更加简单。

高性能

高性能: PaddlePaddle针对服务器和移动设备进行了优化。

工业级应用

工业级应用: PaddlePaddle在工业界有广泛的应用,特别是在中国。

丰富的预训练模型

丰富的预训练模型: PaddlePaddle提供了大量的预训练模型,方便开发者使用。

核心组件

paddle.Tensor: 提供了张量操作。
paddle.nn: 包含了神经网络的层和激活函数
paddle.optimizer: 提供了各种优化算法。
paddle.io: 用于数据加载和预处理
这三个框架各有优势,开发者可以根据自己的需求、熟悉度和项目特点来选择合适的框架。

第二部分:基本操作

PyTorch 基本操作

安装PyTorch:

pip install torch torchvision torchaudio

创建张量(Tensor):

import torch

创建一个未初始化的5x3矩阵

x = torch.empty(5, 3)

创建一个随机初始化的5x3矩阵

x = torch.rand(5, 3)

创建一个全零的5x3矩阵,数据类型为long

x = torch.zeros(5, 3, dtype=torch.long)

张量操作:
创建张量

x = torch.tensor([5.5, 3])
y = torch.tensor([2.0, 1.0])

加法运算

z = x + y

乘法运算

z = x * y

索引

print(x[0])

自动微分(Autograd):
requires_grad=True表示需要计算梯度

x = torch.ones(2, 2, requires_grad=True)
y = x + 2
z = y * y * 3
out = z.mean()

计算梯度

out.backward()

打印梯度

print(x.grad)

神经网络(nn.Module):

import torch.nn as nn
import torch.nn.functional as F

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        # 定义网络层
        self.conv1 = nn.Conv2d(1, 6, 3)
        self.conv2 = nn.Conv2d(6, 16, 3)

    def forward(self, x):
        # 前向传播
        x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2))
        x = F.max_pool2d(F.relu(self.conv2(x)), 2)
        return x

net = Net()
print(net)

TensorFlow 基本操作

安装TensorFlow:

pip install tensorflow

创建张量(Tensor):

import tensorflow as tf

创建一个常量张量

x = tf.constant([[1, 2, 3], [4, 5, 6]])

张量操作:
创建张量

a = tf.constant([[1, 2], [3, 4]])
b = tf.constant([[5, 6], [7, 8]])

加法运算

c = a + b

乘法运算

d = a * b

执行运算

print(c.numpy())

自动微分(Autograph):
使用tf.GradientTape来跟踪操作

x = tf.Variable(3.0)
with tf.GradientTape() as tape:
    y = x * x

计算梯度

dy_dx = tape.gradient(y, x)
print(dy_dx.numpy())

构建模型(tf.keras):

model = tf.keras.Sequential([
    tf.keras.layers.Dense(10, activation='relu', input_shape=(32,)),
    tf.keras.layers.Dense(1)
])

model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])

模型摘要

model.summary()

PaddlePaddle 基本操作

安装PaddlePaddle:

pip install paddlepaddle

创建张量(Tensor):

import paddle

创建一个零张量

x = paddle.zeros([2, 3], dtype='float32')

张量操作:
创建张量

a = paddle.to_tensor([[1.0, 2.0], [3.0, 4.0]])
b = paddle.to_tensor([[5.0, 6.0], [7.0, 8.0]])

加法运算

c = paddle.add(a, b)

总结

以上就是今天要讲的内容,本文仅仅简单介绍了Pytorch、TensorFlow、Paddlepaddle三个深度学习框架以及其基本操作。


http://www.kler.cn/a/527744.html

相关文章:

  • Rust 条件语句
  • python学opencv|读取图像(四十七)使用cv2.bitwise_not()函数实现图像按位取反运算
  • MATLAB中extractAfter函数用法
  • 【C++】List的模拟实现
  • DeepSeek介绍及使用ollama本地化部署DeepSeek-R1大模型
  • MySQL 索引存储结构
  • 设计模式Python版 桥接模式
  • X86路由搭配rtl8367s交换机
  • 计算机网络之物理层通信基础(信道、信号、带宽、码元、波特、速率、信源与信宿等基本概念)
  • IBM数据与人工智能系列 安装 IBM 编程助手
  • Baklib在企业知识管理中的突出优势与其他工具的深度对比研究
  • 解锁高效编程:C++异步框架WorkFlow
  • 柱量最大值转向
  • SpringBoot核心特性:自动配置与起步依赖
  • [免费]微信小程序智能商城系统(uniapp+Springboot后端+vue管理端)【论文+源码+SQL脚本】
  • 深入解析:一个简单的浮动布局 HTML 示例
  • 通过反射搭建简易的Servlet层自动化映射参数并调用Service层业务方法的框架
  • 什么是集成学习
  • TypeScript 学习 -代码检查工具 eslint
  • Day31-【AI思考】-关键支点识别与战略聚焦框架
  • FFmpeg(7.1版本)的基本组成
  • 【C++语言】卡码网语言基础课系列----1. A+B问题I
  • 2025年人工智能技术:Prompt与Agent的发展趋势与机遇
  • 从训练到生产:AI 模型如何突破困境实现高效部署?
  • DeepSeek本地版安装简易教程(windows)
  • 第24节课:前端性能优化—提升网页加载速度的关键策略