深度学习入门2-用pytorch构建一个卷积神经网络的必要步骤

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

今天和大家分享一个我测试过了的用pytorch构建的神经网络,希望这是我的脚买入深度学习的大门的第一步


提示:以下是本篇文章正文内容,下面案例可供参考

一、构建一个卷积神经网络的步骤

1构建一个网络类对象,对象中一定要包括初始化函数、向前传播函数; 2实例化类对象,向网络中传入数据,改变参数; 3求损失; 4优化器进行参数优化; 5误差反向传播;

二、代码实现

1.引入库

代码如下(示例):

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

2.构建网络类对象

代码如下(示例):

#定义网络类
class Net(nn.Module):
    def __init__(self):
        super(Net,self).__init__()
        #定义第一层卷积层,输入维度=1,输出维度=6,卷积核大小3*3
        self.conv1=nn.Conv2d(1,6,3)
        #定义第二层卷积层,输入维度=6,输出维度=16,卷积核大小3*3
        self.conv2=nn.Conv2d(6,16,3)
        #定义三层全连接神经网络
        self.fc1=nn.Linear(17280,120)
        self.fc2=nn.Linear(120,64)
        self.fc3=nn.Linear(64,1)

    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)
        #经过卷积层的处理后,张量进入全连接层,进入前需要调整张量的形状
        x=x.view(-1,self.num_flat_feature(x))
        x=F.relu(self.fc1(x))
        x=F.relu(self.fc2(x))
        x=self.fc3(x).squeeze(1)
        return x

    def num_flat_feature(self,x):
        size=x.size()[1:]
        num_features=1
        for s in size:
            num_features*=s
        return num_features

3.实例化类对象,调整网络内部参数

代码如下(示例):

net=Net()  #实例化类对象

input=torch.randn(1,1,128,150)  #conv2d的输入需要是一个四维的张量
print(input.size())
out=net(input)
print(out)
print(out.size())  #输出的维度则是由全连接层最后一层的维度决定的

#input[1, 1, 128, 150]->conv1poll[1, 6, 63, 74]->conv2pool[1, 16, 30, 36]->view[1, 17280]->linear1relu[1, 120]->linear2relu[1,64]->linear3relu[1]
#上面这样的维度确定是打开相应层所得到的output.size()
#通过卷积层的维度,第二个由卷积层的输入决定;第三第四由池化部分的参数决定,该值为input/pool参数-1;
#线性层只要输入和输出相对应就好

4.求损失

代码如下(示例):

target=torch.randn(1)
print(target)
print(target.size())  #target和out的size需要对应,不然就要通过view来转换
criterion=nn.MSELoss()
loss=criterion(out,target)

5.构建优化器

代码如下(示例):

import torch.optim as optim  #导入优化器的包
optimizer=optim.SGD(net.parameters(),lr=0.01)  #构建优化器
optimizer.zero_grad()  #优化器的梯度清零

6.误差反向传播

代码如下(示例):

loss.backward()  #误差反向传播
optimizer.step()  #优化器更新网络参数

总结

就到这里啦,使用pytorch构建的一个简单的conv2d的神经网络,之后应该还会以一个实际例子来总结训练、模型保存和加载、以及测试的部分。写博客的第二天,希望之后能坚持,最好能以这个频率坚持下去,加油加油!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 《PyTorch生物医学视觉深度学习入门与实战--豪华版》是一本针对生物医学领域的深度学习入门教材。它涵盖了PyTorch框架下的生物医学图像处理、分割、分类、检测等任务,并提供了相关实战案例。 这本书首先介绍了生物医学视觉深度学习的基础知识,包括卷神经网络、深度学习模型的优化和训练等。接着,书中详细解释了PyTorch框架的基本用法和相关工具,帮助读者在实践中理解和应用深度学习算法。 在实战部分,本书结合生物医学图像处理的具体问题,介绍了数据预处理、模型构建和训练、结果评估等关键步骤。读者可以通过实例学习使用PyTorch框架处理生物医学图像,如医学图像的分割、肿瘤检测和分类等任务,并了解如何应对不同情况下的挑战。 此外,书中还介绍了一些扩展内容,如生成对抗网络(GAN)在生物医学领域的应用、迁移学习等,以帮助读者深入理解和拓展知识。 综上所述,《PyTorch生物医学视觉深度学习入门与实战--豪华版》是一本全面介绍生物医学图像处理深度学习的教材,适合对生物医学领域感兴趣的学习者,通过学习本书的内容可以提高在生物医学图像处理方面的能力和应用水平。 ### 回答2: 《PyTorch生物医学视觉深度学习入门与实战--豪华版》是一本针对深度学习在生物医学视觉领域应用的学习和实践指南。 深度学习在生物医学视觉中具有重要的应用价值,例如通过图像识别和分割等技术来辅助医生进行疾病诊断和治疗。而PyTorch作为一种强大的深度学习框架,为进行生物医学视觉深度学习提供了方便和高效的工具。 《PyTorch生物医学视觉深度学习入门与实战--豪华版》从初级到高级提供了全面而系统的学习内容。书中首先介绍了深度学习的基础知识和常用算法,以及PyTorch的基本使用方法。然后,详细探讨了如何在生物医学视觉领域中应用深度学习,包括图像分割、图像分类、目标检测等任务的具体方法和实践。 此外,《PyTorch生物医学视觉深度学习入门与实战--豪华版》还提供了大量的实际案例和代码示例,读者可以通过实践来巩固所学知识。书中也讨论了一些生物医学数据集的特点和处理方法,以及常用性能评估指标的使用。 总的来说,《PyTorch生物医学视觉深度学习入门与实战--豪华版》旨在帮助读者快速入门和应用深度学习技术解决生物医学视觉问题。无论是初学者还是有一定基础的研究人员都可以从中获得深入的学习和实践经验,从而在生物医学领域取得更好的成果。 ### 回答3: 《PyTorch生物医学视觉深度学习入门与实战--豪华版》是一本关于使用PyTorch进行生物医学图像处理和深度学习的书籍。本书旨在帮助读者从零开始了解如何使用PyTorch来处理生物医学图像,并深入学习深度学习算法在生物医学图像分析中的应用。 该书首先介绍了PyTorch这一热门的深度学习框架的基本概念和使用方法,包括Tensor、模型构建、前向传播、反向传播等。然后,书中讲解了生物医学图像处理的基础知识,如图像预处理、增强和分割等技术。 在掌握了基础知识之后,读者将逐步学习应用深度学习算法处理生物医学图像的方法。书中以一系列实战项目为例,涵盖了多个生物医学图像处理任务,如肺部结节检测、乳腺癌识别、皮肤病分类等。每个项目都介绍了该任务的背景和重要性,然后详细讲解了使用PyTorch实现的具体步骤。 此外,该书还特别强调了实践的重要性。每个实战项目都包括了详细的代码示例和完整的代码实现,读者可以根据书中的指导逐步实现项目,并通过实践加深对深度学习和生物医学图像处理的理解。 总之,《PyTorch生物医学视觉深度学习入门与实战--豪华版》是一本全面介绍如何使用PyTorch进行生物医学图像处理和深度学习的书籍。它可以帮助读者从零开始学习并掌握相关知识和技能,并通过实际项目的实战经验,进一步提升自己在生物医学视觉深度学习领域的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值