知识点

张量

张量:张量是现代机器学习的基础。它的核心是一个数据容器,多数情况下,它包含数字,有时候它也包含字符串,但这种情况比较少。因此把它想象成一个数字的水桶。

【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相关推荐

  1. 深度学习英文缩写_深度学习相关专业词汇简称汇总

    深度学习相关专业词汇简称汇总 zoerywzhou@gmail.com 作者:Zhouw 2016-3-15 版权声明:本文为博主原创文章,未经博主允许不得转载. 作者是深度学习的初学者,经由导师指导 ...

  2. ann人工神经网络_深度学习-人工神经网络(ANN)

    ann人工神经网络 Building your first neural network in less than 30 lines of code. 用不到30行代码构建您的第一个神经网络. 1.W ...

  3. 学习笔记:深度学习(3)——卷积神经网络(CNN)理论篇

    学习时间:2022.04.10~2022.04.12 文章目录 3. 卷积神经网络CNN 3.1 卷积神经网络的概念 3.1.1 什么是CNN? 3.1.2 为什么要用CNN? 3.1.3 人类的视觉 ...

  4. 读书笔记:深度学习进阶-自然语言处理(俗称鱼书二)

    文章目录 前言 一.神经网络的复习 二.自然语言和单词的分布式表示 2.1什么是自然语言处理 2.2同义词词典 2.3基于计数的方法 2.3.1基于python的语料库的预处理 2.3.2单词的分布式 ...

  5. 学习笔记:深度学习(6)——基于深度学习的语言模型

    学习时间:2022.04.22~2022.04.25 文章目录 5. 基于深度学习的语言模型 5.1 从NNLM到词嵌入 5.1.1 神经网络语言模型 NNLM 5.1.2 基于循环神经网络的语言模型 ...

  6. 深度学习 图像分类_深度学习时代您应该阅读的10篇文章了解图像分类

    深度学习 图像分类 前言 (Foreword) Computer vision is a subject to convert images and videos into machine-under ...

  7. 脑电波之父:汉斯·贝格尔_深度学习,认识聪明的汉斯

    脑电波之父:汉斯·贝格尔 Around 1900, a German farmer made an extraordinary claim: he had taught a horse basic a ...

  8. 【长篇博文】Docker学习笔记与深度学习环境的搭建和部署(二)

    长篇博文记录学习流程不容易,请关注.转发.点赞.评论,谢谢! 上一篇文章:Docker学习笔记与深度学习环境的搭建和部署(一) 文章末尾附加nvidia455.23.cuda11.1.cudnn8.0 ...

  9. 深度学习深度前馈网络_深度学习前馈网络中的讲义第4部分

    深度学习深度前馈网络 FAU深度学习讲义 (FAU Lecture Notes in Deep Learning) These are the lecture notes for FAU's YouT ...

  10. 深度学习试题_深度学习秋招面试题集锦(一)

    这部分的面试题包含C++基础知识.python基础.概率相关.智力题相关.算法相关以及深度学习相关.后续还会不断补充,欢迎大家查阅! C++后台开发面试常见问题汇总 Q1 : C++虚函数表剖析. A ...

最新文章

  1. 基于长短读长和参考基因组的组装错误检测算法的研究
  2. LeetCode 123. Best Time to Buy and Sell Stock III--Python解法--动态规划--数学题
  3. Caffe学习系列(13):数据可视化环境(python接口)配置
  4. 任务和特权级保护(一)——《x86汇编语言:从实模式到保护模式》读书笔记27
  5. 人工智能技术的新突破:MIT科学家发明Church AI语言
  6. 情怀成驱动力 网游改编手游能火多久?
  7. 前端学习 -- Css -- 属性选择器
  8. 苏州软件测试11k工资要什么水平,3个月从机械转行软件测试,他的入职薪资是11K...
  9. leetcode842. 将数组拆分成斐波那契序列(回溯)
  10. 算法(18)-leetcode-剑指offer2
  11. python 文件管理_python 文件操作
  12. Jmeter接口测试系列之测试用例变量参数化处理
  13. MATLAB gui 欢迎界面 插入图片
  14. Python:generator的send()方法流程分析
  15. sps2013安装错误
  16. tips of MIPS
  17. 网络存储学习之网络存储技术的发展现状及趋势
  18. PV操作解决哲学家进餐问题(图文详解)
  19. 稳定触发windows蓝屏的路径漏洞,不要用来整人!
  20. 程序员如何写简历之项目篇(二)

热门文章

  1. Python用户交互以及数据类型
  2. vue-学习笔记-基础1
  3. PHPCURL直接访问JSONRPC服务
  4. 类数组变量定义与初始化
  5. (非本校)湖南工业大学个人选拔赛第一场 解题报告
  6. iPhone 开源游戏引擎
  7. log4j2 使用详解 (转)
  8. uni-app之实现分页
  9. golang cover协程异常
  10. 内存泄漏分析工具tMemoryMonitor(转载)