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. SQL中ISNULL的问题。
  2. visual studio2019许可证
  3. WPF – 使用触发器
  4. android 锁屏音量,Android锁屏状态获取音量按键事件
  5. MySQL异步复制延迟解决的架构设计与运维架构ppt
  6. 四、规则组织的衍生组织——经向破斜组织数学模型的建立
  7. 理解WebKit和Chromium: Canvas2D及其实现
  8. 您未必知道的Css技巧
  9. l3asnumanode 设置_numa设置与mysql
  10. 关于SCM供应链管理系统开发思路
  11. DIY一个正弦表计算器,用于单片机查表生成正弦波
  12. 人民币金额小写转换大写
  13. android 5 root super su,针对Supersu也root不了手机的root详细使用教程
  14. A problem occurred configuring root project ‘xxx‘.
  15. min-width、max-width属性中min-content、max-content的含义,css中minmax()用法、1fr单位的含义----使页面具有相应性的属性以及属性值
  16. IBM 员工大地震:3万职位面临调整 1万人或被裁
  17. 基于ODBC的MFC与sql_server2008r2连接教程和错误解决方法
  18. 微信自定义分享在pc正常手机端不正常问题
  19. 【数据科学家】什么是数据科学家? 一个关键的数据分析角色和一个利润丰厚的职业...
  20. Ardunio Nano 无法上传解决办法

热门文章

  1. UI设计师福利之手把手做一枚与众不同的loading动图
  2. 162-168 李游前端精品课程笔记
  3. 真无线耳机什么牌子好?无线入耳式耳机音质排行榜!
  4. Jmeter使用篇(五) : Jmeter发送post_json请求
  5. 基于Pytorch的深度学习激励函数总结
  6. centOS常见问题
  7. HTML + CSS 实现矩形/圆形进度条效果 - SVG
  8. cannot import name ‘logger‘ logbook
  9. 哪款耳机音质好又耐用?音质最好的耳机排名
  10. 产品经理:我们觉得B站的社区氛围好,好在哪里?