笔记_深度学习相关_PyTorch
知识点
张量
张量:张量是现代机器学习的基础。它的核心是一个数据容器,多数情况下,它包含数字,有时候它也包含字符串,但这种情况比较少。因此把它想象成一个数字的水桶。
【tensorflow】浅谈什么是张量tensor :https://blog.csdn.net/qq_31821675/article/details/79188449
范数
x.data.norm() : 正常求2-范数,即所有元素平方和,再开根号。如
梯度
requires_grad=True 要求梯度
卷积
nn.Conv2d(self, in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True))
参数:
in_channel: 输入数据的通道数,例RGB图片通道数为3;
out_channel: 输出数据的通道数,这个根据模型调整;
kennel_size: 卷积核大小,可以是int,或tuple;kennel_size=2,意味着卷积大小2, kennel_size=(2,3),意味着卷积在第一维度大小为2,在第二维度大小为3;
stride:步长,默认为1,与kennel_size类似,stride=2,意味在所有维度步长为2, stride=(2,3),意味着在第一维度步长为2,意味着在第二维度步长为3;
padding: 零填充
参考: https://blog.csdn.net/qq_26369907/article/details/88366147;
nn.Conv2d 参数及输入输出详解:https://www.cnblogs.com/siyuan1998/p/10809646.html
连接函数
PyTorch的 nn.Linear()
是用于设置网络中的全连接层的,需要注意的是全连接层的输入与输出都是二维张量,一般形状为[batch_size, size]
,不同于卷积层要求输入输出是四维张量。其用法与形参说明如下:
参考:PyTorch的nn.Linear()详解: https://blog.csdn.net/qq_42079689/article/details/102873766
采样
在pytorch中使用Pooling操作来实现采样,常见的pool操作包含Max_pool,Avg_pool等
# def max_pool2d(inputs,
# kernel_size,
# stride=2,
# padding='VALID',
# data_format=DATA_FORMAT_NHWC,
# outputs_collections=None,
# scope=None):
参考:Pytorch(笔记3)--MaxPool2d&AdaptiveAvgPool2d :http://www.freesion.com/article/491210388/
nn.MaxPool2d(kernel_size=2, stride=(2, 1), padding=(0, 1))
激活函数ReLu
ReLu(Rectified Linear Units)激活函数
ReLU为什么比Sigmoid效果好: https://www.cnblogs.com/alexanderkun/p/6918029.html
常用函数
Pytorch中的view函数
作用是将张量铺平,即变成一行。
例如:
import torch
target = torch.randn(10,2)
print(target)
target = target.view(1,-1)
print(target)
tensor([[ 0.4080, 0.2592],
[-0.6065, -1.6695],
[-0.2938, 1.0712],
[-1.2811, 0.1640],
[-0.1256, 0.3585],
[-0.6682, -0.8516],
[-1.6582, 1.2890],
[ 0.0135, 1.5360],
[-0.1070, 0.6072],
[-0.1969, -0.6077]])
tensor([[ 0.4080, 0.2592, -0.6065, -1.6695, -0.2938, 1.0712, -1.2811, 0.1640,
-0.1256, 0.3585, -0.6682, -0.8516, -1.6582, 1.2890, 0.0135, 1.5360,
-0.1070, 0.6072, -0.1969, -0.6077]])
optim.SGD
optimizer = optim.SGD(net.parameters(), lr=0.01)
Stochastic Gradient Descent (SGD)
SGD是最基础的优化方法,普通的训练方法, 需要重复不断的把整套数据放入神经网络NN中训练, 这样消耗的计算资源会很大.当我们使用SGD会把数据拆分后再分批不断放入 NN 中计算. 每次使用批数据, 虽然不能反映整体数据的情况, 不过却很大程度上加速了 NN 的训练过程, 而且也不会丢失太多准确率.
以optim.SGD为例介绍pytorch优化器:https://www.jianshu.com/p/ff0059a9d2cb
Pytorch中的函数
- torch.normal(means, std, out=None)
- 返回一个张量,包含从给定参数(
标准差为means
,均值为std)
的离散正态分布中抽取随机数
- 返回一个张量,包含从给定参数(
- net = Net(3,10,2)
- 输入3个特征,设定有10个神经元的隐藏层,输出2个分类
- loss_func = torch.nn.MSELoss()
- 回归问题时损失函数使用MSE
- loss_func = torch.nn.CrossEntropyLoss()
- 输出的是属于某个类的概率形式,如[0.1, 0.2, 0.7]
- 搭建神经网络层结构的两种方式
- 类定义的形式
class Net(torch.nn.Module):def __init__(self, n_feature, n_hidden, n_output):super(Net, self).__init__()self.hidden = torch.nn.Linear(n_feature, n_hidden)self.predict = torch.nn.Linear(n_hidden, n_output)def forward(self, x):x = F.relu(self.hidden(x))x = self.predict(x)return xnet1 = Net(1, 10, 1) # 这是我们用这种方式搭建的 net1
- Sequential的方式
net2 = torch.nn.Sequential(torch.nn.Linear(1, 10),torch.nn.ReLU(),torch.nn.Linear(10, 1) )
- 类定义的形式
批处理:使用 Data.DataLoader,批量加载训练数据
笔记_深度学习相关_PyTorch相关推荐
- 深度学习英文缩写_深度学习相关专业词汇简称汇总
深度学习相关专业词汇简称汇总 zoerywzhou@gmail.com 作者:Zhouw 2016-3-15 版权声明:本文为博主原创文章,未经博主允许不得转载. 作者是深度学习的初学者,经由导师指导 ...
- ann人工神经网络_深度学习-人工神经网络(ANN)
ann人工神经网络 Building your first neural network in less than 30 lines of code. 用不到30行代码构建您的第一个神经网络. 1.W ...
- 学习笔记:深度学习(3)——卷积神经网络(CNN)理论篇
学习时间:2022.04.10~2022.04.12 文章目录 3. 卷积神经网络CNN 3.1 卷积神经网络的概念 3.1.1 什么是CNN? 3.1.2 为什么要用CNN? 3.1.3 人类的视觉 ...
- 读书笔记:深度学习进阶-自然语言处理(俗称鱼书二)
文章目录 前言 一.神经网络的复习 二.自然语言和单词的分布式表示 2.1什么是自然语言处理 2.2同义词词典 2.3基于计数的方法 2.3.1基于python的语料库的预处理 2.3.2单词的分布式 ...
- 学习笔记:深度学习(6)——基于深度学习的语言模型
学习时间:2022.04.22~2022.04.25 文章目录 5. 基于深度学习的语言模型 5.1 从NNLM到词嵌入 5.1.1 神经网络语言模型 NNLM 5.1.2 基于循环神经网络的语言模型 ...
- 深度学习 图像分类_深度学习时代您应该阅读的10篇文章了解图像分类
深度学习 图像分类 前言 (Foreword) Computer vision is a subject to convert images and videos into machine-under ...
- 脑电波之父:汉斯·贝格尔_深度学习,认识聪明的汉斯
脑电波之父:汉斯·贝格尔 Around 1900, a German farmer made an extraordinary claim: he had taught a horse basic a ...
- 【长篇博文】Docker学习笔记与深度学习环境的搭建和部署(二)
长篇博文记录学习流程不容易,请关注.转发.点赞.评论,谢谢! 上一篇文章:Docker学习笔记与深度学习环境的搭建和部署(一) 文章末尾附加nvidia455.23.cuda11.1.cudnn8.0 ...
- 深度学习深度前馈网络_深度学习前馈网络中的讲义第4部分
深度学习深度前馈网络 FAU深度学习讲义 (FAU Lecture Notes in Deep Learning) These are the lecture notes for FAU's YouT ...
- 深度学习试题_深度学习秋招面试题集锦(一)
这部分的面试题包含C++基础知识.python基础.概率相关.智力题相关.算法相关以及深度学习相关.后续还会不断补充,欢迎大家查阅! C++后台开发面试常见问题汇总 Q1 : C++虚函数表剖析. A ...
最新文章
- 基于长短读长和参考基因组的组装错误检测算法的研究
- LeetCode 123. Best Time to Buy and Sell Stock III--Python解法--动态规划--数学题
- Caffe学习系列(13):数据可视化环境(python接口)配置
- 任务和特权级保护(一)——《x86汇编语言:从实模式到保护模式》读书笔记27
- 人工智能技术的新突破:MIT科学家发明Church AI语言
- 情怀成驱动力 网游改编手游能火多久?
- 前端学习 -- Css -- 属性选择器
- 苏州软件测试11k工资要什么水平,3个月从机械转行软件测试,他的入职薪资是11K...
- leetcode842. 将数组拆分成斐波那契序列(回溯)
- 算法(18)-leetcode-剑指offer2
- python 文件管理_python 文件操作
- Jmeter接口测试系列之测试用例变量参数化处理
- MATLAB gui 欢迎界面 插入图片
- Python:generator的send()方法流程分析
- sps2013安装错误
- tips of MIPS
- 网络存储学习之网络存储技术的发展现状及趋势
- PV操作解决哲学家进餐问题(图文详解)
- 稳定触发windows蓝屏的路径漏洞,不要用来整人!
- 程序员如何写简历之项目篇(二)