Pytorch 与 Tensorflow对比学习 第3周:进阶主题 Day 15-16: 卷积神经网络(CNN)

这篇具有很好参考价值的文章主要介绍了Pytorch 与 Tensorflow对比学习 第3周:进阶主题 Day 15-16: 卷积神经网络(CNN)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第3周:进阶主题
Day 15-16: 卷积神经网络(CNN)

在这两天中,我专注于学习卷积神经网络(CNN)的基础知识,包括卷积层和池化层的工作原理以及它们在图像处理中的应用。

卷积神经网络基础:

卷积层:学习了卷积层如何通过滤波器(或称为核)提取图像的特征。每个滤波器负责捕捉图像中的不同特征。
激活函数:理解了ReLU(Rectified Linear Unit)作为激活函数在CNN中的广泛应用,用于增加非线性。
池化层:了解了池化层(尤其是最大池化)如何帮助减少参数数量并防止过拟合,同时保留重要特征。
实践构建CNN:

设计并实现了一个简单的CNN模型,用于处理图像数据。
模型包括卷积层、激活函数、池化层以及全连接层来进行分类。

PyTorch实现:

在PyTorch中,我使用torch.nn模块定义了CNN的各个组件。
实现了一个包含卷积层、ReLU激活和最大池化层的简单网络。

下面是一个简单的CNN模型的PyTorch实现示例:

import torch
import torch.nn as nn
import torch.optim as optim

定义一个简单的CNN

class SimpleCNN(nn.Module):
def init(self):
super(SimpleCNN, self).init()
self.conv1 = nn.Conv2d(1, 32, kernel_size=3, stride=1, padding=1)
self.relu = nn.ReLU()
self.maxpool = nn.MaxPool2d(kernel_size=2, stride=2)
self.fc = nn.Linear(32 * 14 * 14, 10) # 假设输入图像大小为28x28

def forward(self, x):
    x = self.conv1(x)
    x = self.relu(x)
    x = self.maxpool(x)
    x = x.view(-1, 32 * 14 * 14)  # 展平操作
    x = self.fc(x)
    return x

实例化模型、定义损失函数和优化器

model = SimpleCNN()
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)、

TensorFlow实现
在TensorFlow中,我们将使用Keras API来构建相似的CNN结构。这个例子同样包含卷积层、ReLU激活函数、池化层和一个全连接层。

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

定义一个简单的CNN

model = Sequential([
Conv2D(32, kernel_size=(3, 3), strides=(1, 1), padding=‘same’, activation=‘relu’, input_shape=(28, 28, 1)),
MaxPooling2D(pool_size=(2, 2), strides=(2, 2)),
Flatten(),
Dense(10, activation=‘softmax’)
])

编译模型

model.compile(optimizer=‘adam’,
loss=‘sparse_categorical_crossentropy’,
metrics=[‘accuracy’])

模型概要

model.summary()

在这个TensorFlow实现中,我们使用了Sequential模型来顺序地添加层。这种方法使得模型的构建过程更加直观和简洁。Conv2D和MaxPooling2D分别对应于PyTorch中的nn.Conv2d和nn.MaxPool2d。Flatten层用于将卷积层的输出展平,以便输入到全连接层(Dense层)。

通过对比PyTorch和TensorFlow的实现,可以看出两个框架在构建CNN方面的异同,这有助于更深入地理解这些概念,并在不同框架间转换思维方式。文章来源地址https://www.toymoban.com/news/detail-807945.html

到了这里,关于Pytorch 与 Tensorflow对比学习 第3周:进阶主题 Day 15-16: 卷积神经网络(CNN)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • TensorFlow和Pytorch分析经典数据iris实现区别和对比

    TensorFlow 分析 iris 数据的源码 当使用TensorFlow来分析Iris数据集时,可以使用经典的机器学习问题——鸢尾花分类任务。以下是一个使用TensorFlow库来训练和评估模型的基本源代码示例: 上述代码中,我们首先导入了所需的库和模块。然后,加载Iris数据集并将特征数据 X 和标签

    2024年02月16日
    浏览(29)
  • 第1周:Day 3 - PyTorch与TensorFlow的异同介绍(入门级)

    第1周:Day 3 - PyTorch介绍 学习目标 理解PyTorch的基本概念和主要特点。 成功安装PyTorch环境。 PyTorch简介 PyTorch 是一个开源的机器学习库,广泛用于计算机视觉和自然语言处理等领域。 它由Facebook的人工智能研究团队开发,提供了丰富的API,便于进行深度学习模型的快速开发和

    2024年01月20日
    浏览(31)
  • 机器学习16:使用 TensorFlow 进行神经网络编程练习

    在【机器学习15】中,笔者介绍了神经网络的基本原理。在本篇中,我们使用 TensorFlow 来训练、验证神经网络模型,并探索不同 “层数+节点数” 对模型预测效果的影响,以便读者对神经网络模型有一个更加直观的认识。 目录 1.导入依赖模块 2.加载数据集 3.表示数据

    2024年02月12日
    浏览(30)
  • 机器学习基础(六)TensorFlow与PyTorch

    导语:上一节我们详细探索了监督与非监督学习的结合使用。,详情可见: 机器学习基础(五)监督与非监督学习的结合-CSDN博客 文章浏览阅读4次。将监督学习和非监督学习结合起来,就像将两种不同的艺术形式融合,创造出全新的作品。这种结合利用了两种学习方法的优

    2024年02月22日
    浏览(31)
  • 深度学习框架TensorFlow和PyTorch的选取

    大家好,当涉及到深度学习框架时,TensorFlow和PyTorch是最受欢迎的两个选择。它们都是功能强大的开源库,使开发人员和研究人员能够构建和训练用于各种应用的神经网络。本文将探讨TensorFlow和PyTorch之间的主要区别,帮助你做出明智的决策。 首先简要介绍一下这两个框架:

    2024年04月27日
    浏览(26)
  • Pytorch或Tensorflow 深度学习库安装 (简易版)

    如果只用pytorch, 只需在虚拟环境安装cuda 和 cudnn即可;(只需1-2步即可) 如果使用 tensorflow,一般虚拟环境不支持,2.10一下亲测不行;(需要第3步) 显示True或者GPU可用集合,则成功; 如果显示False,参考下面 3; cuda安装 添加环境变量 测试cuda PASS 则表示通过 下载library,

    2024年04月23日
    浏览(24)
  • PyTorch深度学习实战(15)——迁移学习

    迁移学习( Transfer Learning )是一种利用从一项任务中获得的知识来解决另一项类似任务的技术。一个使用数百万张图像训练的模型,训练数据涵盖数千种对象类别,模型的卷积核将能够学习图像中的各种形状、颜色和纹理,通过重用这些卷积核可以学习到新图像的特征,并最终

    2024年02月09日
    浏览(30)
  • 深度学习框架教程:介绍一些流行的深度学习框架 (如TensorFlow、PyTorch等)

    目录 一、引言 二、TensorFlow 三、Keras 四、PyTorch 五、技巧与最佳实践

    2024年02月02日
    浏览(36)
  • 算法学习day16

    104 二叉树的最大深度 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 递归 入参:根节点 递归终止,节点为null, return 0 ; 循环条件:当前层级1+左右子节点的最大深度 返回最大深度

    2024年02月08日
    浏览(25)
  • Day 15 python学习笔记

    用print打印对象时,会自动调用 面向对象的三大特征:封装、继承、多态(有的人认为抽象也是) 在面向对象中,认为定义在类中的属性外界可以更改是不安全的,封装指一种安全机制,不让外界直接修改或操作属性,因此,将属性私有化(封装),不让外界访问,如果要访

    2024年02月07日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包