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

ops/2025/2/3 13:48:14/

文章目录

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


前言

以上就是今天要讲的内容,本文仅仅简单介绍了PytorchTensorFlow、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: 用于数据加载和预处理

TensorFlow_36">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):

python">import torch

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

python">x = torch.empty(5, 3)

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

python">x = torch.rand(5, 3)

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

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

张量操作:
创建张量

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

加法运算

python">z = x + y

乘法运算

python">z = x * y

索引

python">print(x[0])

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

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

计算梯度

python">out.backward()

打印梯度

python">print(x.grad)

神经网络(nn.Module):

python">import torch.nn as nn
import torch.nn.functional as Fclass 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 xnet = Net()
print(net)

TensorFlow__179">TensorFlow 基本操作

安装TensorFlow

pip install tensorflow

创建张量(Tensor):

python">import tensorflow as tf

创建一个常量张量

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

张量操作:
创建张量

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

加法运算

python">c = a + b

乘法运算

python">d = a * b

执行运算

python">print(c.numpy())

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

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

计算梯度

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

构建模型(tf.keras):

python">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'])

模型摘要

python">model.summary()

PaddlePaddle 基本操作

安装PaddlePaddle:

pip install paddlepaddle

创建张量(Tensor):

python">import paddle

创建一个零张量

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

张量操作:
创建张量

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

加法运算

python">c = paddle.add(a, b)

总结

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


http://www.ppmy.cn/ops/155327.html

相关文章

系统URL整合系列视频二(界面原型)

视频 系统URL整合系列视频二(界面原型) 视频介绍 (全国)大型分布式系统Web资源URL整合需求界面原型讲解。当今社会各行各业对软件系统的web资源访问权限控制越来越严格,控制粒度也越来越细。安全级别提高的同时也增加…

【小白学AI系列】NLP 核心知识点(六)Softmax函数介绍

Softmax 函数 Softmax 函数是一种常用的数学函数,广泛应用于机器学习中的分类问题,尤其是在神经网络的输出层。它的主要作用是将一个实数向量“压缩”成一个概率分布,使得所有输出的值在 0 到 1 之间,并且总和为 1。换句话说&…

【力扣】438.找到字符串中所有字母异位词

AC截图 题目 思路 我一开始是打算将窗口内的s子字符串和p字符串都重新排序&#xff0c;然后判断是否相等&#xff0c;再之后进行窗口滑动。不过缺点是会超时。 class Solution { public:vector<int> findAnagrams(string s, string p) {vector<int> vec;if(s.siz…

怎么样把pdf转成图片模式(不能复制文字)

贵但好用的wps&#xff0c; 转换——转为图片型pdf —————————————————————————————————————————— 转换前&#xff1a; 转换后&#xff1a; 肉眼可见&#xff0c;模糊了&#xff0c;且不能复制。 其他免费办法&#xff0c;参考&…

代码练习2.3

终端输入10个学生成绩&#xff0c;使用冒泡排序对学生成绩从低到高排序 #include <stdio.h>void bubbleSort(int arr[], int n) {for (int i 0; i < n-1; i) {for (int j 0; j < n-i-1; j) {if (arr[j] > arr[j1]) {// 交换 arr[j] 和 arr[j1]int temp arr[…

pycharm光标变成白格子 黑格子

PyCharm在输入时的小问题&#xff1a; 在使用PyCharm编译器写代码时&#xff0c;经常会遇到输入光标变成黑白格&#xff0c;在输入时会占一格&#xff0c;如图&#xff1a; 解决方法&#xff1a; 你可以重启pycharm 或 按键盘上的 INS&#xff08;insert&#xff09;键&…

笔灵ai写作技术浅析(三):深度学习

笔灵AI写作的深度学习技术主要基于Transformer架构,尤其是GPT(Generative Pre-trained Transformer)系列模型。 1. Transformer架构 Transformer架构由Vaswani等人在2017年提出,是GPT系列模型的基础。它摒弃了传统的循环神经网络(RNN)和卷积神经网络(CNN),完全依赖自…

DeepSeek 使用的核心技术预测

最近DeepSeek 这个词算是火遍了整个AI圈&#xff0c;这个影响力迅速超过ChatGPT 的产品&#xff0c;都会使用哪些技术来做支撑呢。我这里简单做了一下梳理&#xff0c;结果不一定会完全准确&#xff0c;但是对这类产品的技术架构有个大概的认识。 以下是我对可能涉及的技术架构…