AI智能体研发之路-模型篇(五):pytorch vs tensorflow框架DNN网络结构源码级对比

博客导读:

《AI—工程篇》

AI智能体研发之路-工程篇(一):Docker助力AI智能体开发提效

AI智能体研发之路-工程篇(二):Dify智能体开发平台一键部署

AI智能体研发之路-工程篇(三):大模型推理服务框架Ollama一键部署

AI智能体研发之路-工程篇(四):大模型推理服务框架Xinference一键部署

AI智能体研发之路-工程篇(五):大模型推理服务框架LocalAI一键部署

《AI—模型篇》

AI智能体研发之路-模型篇(一):大模型训练框架LLaMA-Factory在国内网络环境下的安装、部署及使用

AI智能体研发之路-模型篇(二):DeepSeek-V2-Chat 训练与推理实战

AI智能体研发之路-模型篇(三):中文大模型开、闭源之争 

AI智能体研发之路-模型篇(四):一文入门pytorch开发

AI智能体研发之路-模型篇(五):pytorch vs tensorflow框架DNN网络结构源码级对比

目录

一、引言

二、pytorch模型结构定义

三、tensorflow模型结构定义

四、总结


一、引言

本文是上一篇AI智能体研发之路-模型篇(四):一文入门pytorch开发的番外篇,对上文中pytorch的网络结构和tensorflow的模型结构部分进一步详细对比与说明(水一篇为了得到当天的流量卷哈哈,如果想更详细的了解pytorch,辛苦移步上一篇哈。

二、pytorch模型结构定义

def __init__(self, input_size, hidden_size, output_size):super(ThreeLayerDNN, self).__init__()self.fc1 = nn.Linear(input_size, hidden_size)  # 第一层全连接层self.fc2 = nn.Linear(hidden_size, hidden_size)  # 第二层全连接层self.fc3 = nn.Linear(hidden_size, output_size)  # 输出层self.sigmoid = nn.Sigmoid()

首先定义了一个名为`ThreeLayerDNN`的类,它是基于PyTorch框架的,用于构建一个具有三个全连接层(也称为密集层)的深度神经网络,特别适用于二分类问题。下面是对代码的详细解释:

  • `__init__`: 这是Python中的构造函数,当创建`ThreeLayerDNN`类的新实例时会被调用。
  •  `super(ThreeLayerDNN, self).__init__()`: 这行代码调用父类的初始化方法。因为`ThreeLayerDNN`继承自PyTorch的`nn.Module`类,这一步确保了`ThreeLayerDNN`具有`nn.Module`的所有基本属性和方法。
  •  `self.fc1 = nn.Linear(input_size, hidden_size)`: 这里定义了神经网络的第一层全连接层(fully connected layer)。`input_size`是输入数据的特征数量,`hidden_size`是这一层的神经元数量。全连接层意味着输入数据的每个特征都将与这一层的每个神经元相连接。
  •  `self.fc2 = nn.Linear(hidden_size, hidden_size)`: 定义了第二层全连接层,结构与第一层相同,保持了相同的隐藏层大小,这在某些架构中用于加深网络而不立即增加模型复杂度。
  •  `self.fc3 = nn.Linear(hidden_size, output_size)`: 这是网络的输出层,其输入大小与隐藏层相同,输出大小为`output_size`,对于二分类问题,通常为1。
  •  `self.sigmoid = nn.Sigmoid()`: 这行代码定义了一个Sigmoid激活函数,它将在网络的输出层之后应用。Sigmoid函数将输出映射到(0, 1)之间,非常适合二分类问题,其中输出可以解释为属于正类的概率。

综上所述,这段代码构建了一个基础的神经网络结构,适合进行二分类任务,通过全连接层提取特征,并使用Sigmoid函数将网络输出转换为概率估计。

三、tensorflow模型结构定义

model = Sequential([Dense(512, input_shape=(X_train.shape[1],)),  # 第一层Activation('relu'),Dense(512),  # 第二层Activation('relu'),Dense(1),  # 输出层Activation('sigmoid')  # 二分类使用sigmoid
])

使用Keras库(现在是TensorFlow的一个部分)定义了一个简单的深度学习模型,具体来说是一个顺序(Sequential)模型,适用于进行二分类任务。下面是对这段代码的详细解释:

  • Sequential模型: 这是一种线性堆叠层的模型,适合于简单的前向传播神经网络。

  • Dense层: 也称为全连接层,每个神经元都与前一层的所有神经元相连。

    • Dense(512, input_shape=(X_train.shape[1],)): 第一层,有512个神经元,input_shape=(X_train.shape[1],)指定了输入数据的形状,这里假设X_train是一个二维数组,其中每一行是一个样本,X_train.shape[1]表示每个样本的特征数量。
    • Dense(512): 第二层,同样有512个神经元,由于是在Sequential模型中,它自动接收前一层的输出作为输入。
    • Dense(1): 输出层,只有一个神经元,适用于二分类问题。
  • Activation层: 激活函数层,为神经网络引入非线性。

    • Activation('relu'): 使用ReLU(Rectified Linear Unit)作为激活函数,它在输入大于0时输出输入值,小于0时输出0,有助于解决梯度消失问题。
    • 最后一层使用Activation('sigmoid'): 二分类任务中,输出层常用sigmoid激活函数,将输出映射到(0, 1)之间,便于解释为概率。

四、总结

两种框架在定义模型结构时思路基本相同,pytorch基于动态图,更加灵活。tensorflow基于静态图,更加稳定。 

如果还有时间,可以看看我的其他文章:

 《AI—工程篇》

AI智能体研发之路-工程篇(一):Docker助力AI智能体开发提效

AI智能体研发之路-工程篇(二):Dify智能体开发平台一键部署

AI智能体研发之路-工程篇(三):大模型推理服务框架Ollama一键部署

AI智能体研发之路-工程篇(四):大模型推理服务框架Xinference一键部署

AI智能体研发之路-工程篇(五):大模型推理服务框架LocalAI一键部署

《AI—模型篇》

AI智能体研发之路-模型篇(一):大模型训练框架LLaMA-Factory在国内网络环境下的安装、部署及使用

AI智能体研发之路-模型篇(二):DeepSeek-V2-Chat 训练与推理实战

AI智能体研发之路-模型篇(三):中文大模型开、闭源之争​​​​​​​ 

AI智能体研发之路-模型篇(四):一文入门pytorch开发

AI智能体研发之路-模型篇(五):pytorch vs tensorflow框架DNN网络结构源码级对比

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/842648.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3DF Zephyr v7 解锁版安装教程 (照片转三维模型软件)

前言 3DF Zephyr是一款照片转三维模型软件,可以导出许多常见的3D格式,甚至无需外部工具即可生成无损视频。此外,可以生成真正的正射影像,数字高程模型(DTM),甚至可以计算面积,体积&…

软件技术架构全面详解

软件架构全面详解 软件架构 这个与建筑设计架构类似,建筑设计架构师负责设计建筑物的整体结构、布局和功能分配。 而软件架构师,负责设计软件系统的整体组织结构、模块划分、和功能分配。 两者都需要考虑到业务功能、性能、可扩展性、安全性、以及用户体验等方面。 软件架…

TypeScript 函数

函数基础 在 TypeScript 中,函数的定义方式与 JavaScript 类似,但是可以添加类型注解来增强函数的类型安全性。例如: function greet(name: string): string {return Hello, ${name}!; }上面的例子定义了一个名为 greet 的函数,…

【深度学习】ultralytics, yolo seg,实例分割图绘制,核对yolo seg 的txt标记对不对

这段代码的作用是从指定路径读取图像和标签文件,然后在图像上绘制分割区域和相关点,并保存最终的图像。以下是每个函数的具体作用及其解释: read_labels(label_path): 读取指定路径的标签文件。标签文件的每一行表示一个物体的分割信息&#…

【python深度学习】——torch.expand()广播机制|torch.norm()

【python深度学习】——torch.expand广播机制|torch.norm 1. torch.expand()与广播机制2. torch.norm()计算范数3. 结合使用的完整示例代码 1. torch.expand()与广播机制 在处理3D点云时, 有时需要对两帧点云进行逐点的三维坐标相加减、做点积等运算, 但是读入的PCD文件中,点云…

硬盘的分区

目录 概念 硬盘的分区 实操 创建分区 fdisk&#xff08;<2T&#xff09; 创建文件系统 挂载 自动挂载&#xff08;永久挂载&#xff09; gpt区分 swap 交换分区 如何删除已挂载的分区 概念 硬盘&#xff1a;计算机的存储设备。&#xff08;如无特殊说明&#xff0…

sklearn线性回归--岭回归

sklearn线性回归--岭回归 岭回归也是一种用于回归的线性模型&#xff0c;因此它的预测公式与普通最小二乘法相同。但在岭回归中&#xff0c;对系数&#xff08;w&#xff09;的选择不仅要在训练数据上得到好的预测结果&#xff0c;而且还要拟合附加约束&#xff0c;使系数尽量小…

基于springboot+vue的班级综合测评管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

操作系统 实验18 批处理操作接口8:函数

1、建立文件func2.sh&#xff0c;输出文件内容各行及行数 脚本&#xff1a; #!/bin/bash echo -n "请输入一个文件名及路径&#xff1a;" read FILE statisfile(){local i0while read linedo let iecho "$i $line"done < $FILEecho "$FILE有$i行…

高德地图之获取经纬度并且根据获取经纬度渲染到路线规划

话不多说&#xff0c;直接给兄弟们上干货&#xff0c;修改了好多次&#xff0c;之前都是获取到路线但是无法删除&#xff0c;这次是根据点击的单双判断开始和结束 <!DOCTYPE html> <html><head><meta charset"utf-8"><meta http-equiv&q…

解读 MySQL 容器信息:`docker inspect` 字段详解

前言 在使用 Docker 时&#xff0c;docker inspect 命令是一个非常有用的工具&#xff0c;它能够返回容器或镜像的详细配置信息和状态。以下是对 docker inspect mysql 命令输出的字段的详细解释&#xff0c;这些信息可以帮助您更好地了解容器的内部工作机制。 容器基础信息 …

回顾Java中的算术运算符、关系运算符和逻辑运算符,并解释下和的区别

一、在Java中&#xff0c;存在多种类型的运算符&#xff0c;包括算术运算符、关系运算符和逻辑运算符。以下是这些运算符的列表和简要说明&#xff1a; 算术运算符 加法运算符 (): 用于将两个操作数相加。减法运算符 (-): 用于从一个操作数中减去另一个操作数。乘法运算符 (*…

【前端】CSS弹性布局 display-flex

一、display-flex弹性布局 Flex&#xff0c;用来为盒装模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。 在父DIV中使用 display: -webkit-flex; /*在webkit内核的浏览器上使用要加前缀*/ display: flex; //将对象作为弹性伸缩盒显示// 沿水平主轴让元素从左向右排…

git中忽略文件的配置

git中忽略文件的配置 一、在项目根目录下创建.gitignore文件二、配置规则如果在配置之前已经提交过文件了&#xff0c;要删除提交过的&#xff0c;如何修改&#xff0c;参考下面的 一、在项目根目录下创建.gitignore文件 .DS_Store node_modules/ /dist# local env files .env…

找一个区间内两个数最大公约数的最大值(24年gdcpc省赛G题)

题目大意就是t组数据,每组一个左右边界l,r,问区间内的两个是xi,yi是区间内max(gcd(xi,yi)),数据范围是1e12. 答案就是找到第一个a*x<b*x(a<b),他们两在l到r之间且x最大,那么x就是答案,可以知道,要使两个数在区间内,那么他们之间的差值要小于min(R-L,[R/2]),[]表示向下取…

【安装】VMware虚拟机安装windows操作系统,VM的相关操作

目录 引出报错&#xff1a;press any key to boot form cd激活调整显示 在VMware上新建虚拟机&#xff0c;并安装Windows1、新建虚拟机2、装载 ISO 镜像3、安装Windows server 20164、开机初始化 虚拟机操作1、虚拟机基本操作2、虚拟机快照3、虚拟机克隆4、VMware Tools 总结 引…

消费增值:国家支持的消费新零售模型

在当下的消费时代&#xff0c;一个全新的概念——消费增值&#xff0c;正逐渐走进大众视野。它不仅仅是一种消费模式&#xff0c;更是一种全新的财富增长途径。那么&#xff0c;消费增值究竟是什么&#xff1f; 首先&#xff0c;消费增值的本质在于将消费行为与投资行为相结合…

大模型日报2024-05-27

大模型日报 2024-05-27 大模型资讯 芝加哥大学研究AI在金融分析中的应用 摘要: 芝加哥大学的研究探索了大型语言模型&#xff08;LLMs&#xff09;在金融分析中的能力。GPT-4等大型语言模型在文本分析、解释和生成方面表现出色。 AI帮助揭示海洋和肠道中病毒的动态 摘要: 病毒在…

无人机技术:倾转旋翼飞行器的关键技术详解

一、总体设计 倾转旋翼飞行器作为一种独特的垂直起降与水平巡航的航空器&#xff0c;其总体设计是关键技术之一。总体设计涵盖了飞行器的整体布局、重量分配、气动性能、机械结构设计等多个方面。在总体设计中&#xff0c;需要充分考虑飞行器的垂直起降、悬停、过渡飞行和水平…

Docker 安装与管理

Docker 是一个开源的应用容器引擎,主要用于在 Linux 和 Windows 中创建、部署和运行应用程序。在本文中,我们将详细介绍如何在 CentOS 7 上安装和管理 Docker。 前提条件 Docker 运行在 CentOS 7 上,需要满足以下条件: 系统为 64 位系统内核版本 3.10 及以上下面是一个示例环…