Pytorch 是一个机器深度学习框架,易于上手,个人感觉比 tensorflow要友好。
Pytorch的深度学习程序分三个模块,实现三个功能,分别是取数据、建模型、运行程序。一般是分三个.py文件写,当然也可以写在一个文件里。我喜欢写成三个文件,这样看着比较方便点,而且Pytorch把这三个功能都写的挺好的,自己用的时候继承稍微改一下就好了。

其实深度学习的最终目标,就像求 y = f ( x ) y = f(x) y=f(x) 这个公式中 f ( x ) f(x) f(x) 的最佳参数一样:

  1. 首先我们会有很多很多的 ( x , y ) (x, y) (x,y),它们都是一一对应的 (尽量不要出现一个 x x x对应多个 y y y,这样会让 f ( x ) f(x) f(x) 捉摸不透的),那么我们第一个文件就是如何把 ( x , y ) (x, y) (x,y) 弄成一对一对的,送入到 f ( x ) f(x) f(x) 里。
  2. ( x , y ) (x, y) (x,y) 解决了,接下来就是定义 f ( x ) f(x) f(x) 的形式了,具体是怎么表达的,比如 f ( x ) = 2 x f(x)=2x f(x)=2x …, 所以就需要另一个文件来定义 f ( x ) f(x) f(x) 了,就是所谓的模型了。
  3. 现在我们手头上有了成对的 ( x , y ) (x, y) (x,y) 了,也有了确定结构的 f ( x ) f(x) f(x) 。最后就是让两者联系起来,把 ( x , y ) (x, y) (x,y) 送入到 f ( x ) f(x) f(x)里,接着得到结果,求 目标 y y y预测 y y y 之间的差距,一般就是平方差之类的,然后拿着这个差值去进行更新 f ( x ) f(x) f(x) 里的参数,也就是后向传播。

1、数据处理

继承Dataset就可以了,直接上代码

from torch.utils.data import Datasetclass DataSet_h(Dataset):def __init__(self):super(DataSet_h, self).__init__()# 这里的数组就是我们取实际的数据了self.Arr = [(x1, y1), (x2, y2)...]def __len__(self):# 数组的长度return len(self.Arr)def __getitem__(self, item):# 取数据的时候要按着自己定义模型需要来,一般都会有x, yx = self.Arr[item][0]y = self.Arr[item][1]return x, y

2、模型搭建

继承nn.Module就可以了,直接上代码

import torch.nn as nnclass Model_h(nn.Module):def __init__(self):super(Model_h, self).__init__()self.fc = nn.Linear(10, 5)def forward(self, inputs):return self.fc(inputs)

3、训练文件

直接上代码

from torch.utils.data import DataLoader
from Model import Model_h  # 引入定义模型
import DataSet_h  # 引入数据处理
# 定义我们的模型
model = Model_h()
# 定义我们优化器,就理解成用来更新模型参数的
optimizer = torch.optim.Adam(model.parameters(), lr=0.0001)
# 将数据装载如Pytorch定义好的数据驱动器中
trainDataSet = DataSet_h.DataSet_h()
trainDataLoader = DataLoader(trainDataSet, batch_size=2)
for i, batch in enumerate(trainDataLoader):x, y = batchy_pre = model(x)# 当然Pytorch一般会给我们提供很多很好的损失函数,这里就用➖来说明意思loss = y_pre - y  # 然后就是经典三步走了,清空、反传、更新。optimizer.zero_grad()loss.backward()optimizer.step()

最基本的意思就是这样,我还没试代码能不能跑,不过想法通了,代码的小问题都不是事儿了。

Pytorch 深度学习运行代码简单教程相关推荐

  1. PyInstaller打包深度学习模型代码详细教程

    前言:由于工作需求,需要使用Pyinstaller库将Python脚本打包成exe文件,特此花几天时间查找资料,进行实验.将过程做个梳理,记录下来,方便自己和他人日后查询. 目录 一.安装PyInst ...

  2. Pytorch深度学习实战教程:UNet语义分割网络

    1 前言 本文属于Pytorch深度学习语义分割系列教程. 该系列文章的内容有: Pytorch的基本使用 语义分割算法讲解 本文的开发环境如下: 开发环境:Windows 开发语言:Python3. ...

  3. Pytorch 深度学习实战教程(二):UNet语义分割网络

    本文 GitHub https://github.com/Jack-Cherish/PythonPark 已收录,有技术干货文章,整理的学习资料,一线大厂面试经验分享等,欢迎 Star 和 完善. 一 ...

  4. Pytorch深度学习实战教程(二):UNet语义分割网络

    1 前言 本文属于Pytorch深度学习语义分割系列教程. 该系列文章的内容有: Pytorch的基本使用 语义分割算法讲解 如果不了解语义分割原理以及开发环境的搭建,请看该系列教程的上一篇文章< ...

  5. 【Pytorch深度学习实践】B站up刘二大人之BasicCNN Advanced CNN -代码理解与实现(9/9)

    这是刘二大人系列课程笔记的 最后一个笔记了,介绍的是 BasicCNN 和 AdvancedCNN ,我做图像,所以后面的RNN我可能暂时不会花时间去了解了: 写在前面: 本节把基础个高级CNN放在一 ...

  6. 5天玩转PyTorch深度学习,从GAN到词嵌入都有实例丨教程资源

    郭一璞 发自 凹非寺  量子位 报道 | 公众号 QbitAI 学PyTorch深度学习,可能5天就够了. 法国深度学习研究者Marc Lelarge出品的这套名为<Hands-on tour ...

  7. 在conda虚拟环境中配置cuda+cudnn+pytorch深度学习环境(新手必看!简单可行!)

    本人最近接触深度学习,想在服务器上配置深度学习的环境,看了很多资料后总结出来了对于新手比较友好的配置流程,创建了一个关于深度学习环境配置的专栏,包括从anaconda到cuda到pytorch的一系列 ...

  8. 笔记|(b站)刘二大人:pytorch深度学习实践(代码详细笔记,适合零基础)

    pytorch深度学习实践 笔记中的代码是根据b站刘二大人的课程所做的笔记,代码每一行都有注释方便理解,可以配套刘二大人视频一同使用. 用PyTorch实现线性回归 # 1.算预测值 # 2.算los ...

  9. 实战例子_Pytorch官方力荐新书《Pytorch深度学习实战指南》pdf及代码分享

    PyTorch是目前非常流行的机器学习.深度学习算法运算框架.它可以充分利用GPU进行加速,可以快速的处理复杂的深度学习模型,并且具有很好的扩展性,可以轻松扩展到分布式系统.PyTorch与Pytho ...

最新文章

  1. BCH潜力无限,引领区块链发展潮流
  2. 13个风格独特的关于页面(About Pages)设计
  3. 认清企业现状,做好信息化建设
  4. C# 计算IP段之间的IP列表
  5. 列表推导式、字典推导式、集合推导式
  6. 微信小程序最常用的布局——Flex布局
  7. 关于Oracle数据库导入数据显示中文乱码
  8. go 基准测试 找不到函数_初学TDD:测试也能推动开发啦!
  9. 【模板】非旋Treap
  10. 在Winhex中搜索文本字符时注意
  11. linux下安装mysql57_Linux下安装MySql
  12. 19【推荐系统4】DeeoCrossing
  13. 计算机专业英语张强华答案,计算机专业英语答案
  14. 龙卷风路径_“龙卷风”:预判路径 减轻灾害
  15. linux++查找隐藏文件,使用find命令查找Linux中的隐藏文件的方法
  16. LY系列之约会大作战 (10分)
  17. python基础_面向对象进阶
  18. php 做一个题目木选项,GRE PPII阅读解析版
  19. php隐写,数据隐藏技术
  20. python+vue+elementui校园二手书交易信息网站django

热门文章

  1. ICMP与IPv6全局单播地址动态分配
  2. 计算机在桌面哪个地方,win10正式版我的电脑在哪里?如何把此电脑显示在桌面?...
  3. oak深度相机入门教程-Mask R-CNN 算法
  4. 在单链表中删除指定值的节点。
  5. C++ 赋值重载运算符(overloaded operator)operator关键字
  6. java计算机毕业设计共享单车使用满意度评价系统MyBatis+系统+LW文档+源码+调试部署
  7. 小程序用户收货地址修改
  8. 神经多样性是什么意思,神经网络的可解释性差
  9. 制作“登录游戏模板”
  10. MATLAB安装关于工具箱的选择