一句一句读Pytorch(更新中)

试图从code snippets 和 pytorch 源代码 去理解深度学习概念与技巧

返回 总目录文章 pytorch 的损失函数文档解析

视频笔记是按时间循序更新的,越往下越新

大部分视频争取控制在5-8分钟以内,极少数时间在10分钟以上。

如何使用pytorch的numpy

如何理解pytorch.Variable

pytorch如何求导数

pytorch如何求normL1L2

在代码中打印函数公式

快速画函数图

构建与解剖源代码的思考

结合具体应用来理解Norm_L2

如何翻阅pytorch源代码从python到C

pytorch源代码库结构肤浅认知

pytorch 官方tutorials

tutorials 01-03

如何用pytorch构建模型

  • nn.Module, nn.Functional, forward, num_flat_features, inherit, overwrite

如何用pytorch完成一次正反向传递

  • net.parameters, loss.grad_fn.next_functions0, net.zero_grad
  • criterion = nn.MSELoss(), loss = criterion(output, target)
  • optimizer = optim.SGD(net.parameters(), lr=0.01), optimizer.zero_grad, optimizer.step

net.zero_grad() == 效用== optimizer.zero_grad()

  • net.parameters() == 效用== optimizer.param_groups0

net 与optimizer调取parameters方式不同

  • net.parameters() 生成 generator; 用for in loop调取所有参数
  • optimizer.param_groups 生成list, 然后optimizer.param_groups[0]是dict, 然后optimizer.param_groups0调取所有参数
  • lst = list(net.parameters()) 将generator转化为list, 但必须赋值

optimizer.step是如何更新参数的

  • p.data.add_(-group[‘lr’], d_p)

如何调用net.conv1内部的method, attributes

  • net.conv1.weight, net.conv2.bias.grad, net.fc1.zero_grad

构建optim.SGD时到底发生了什么

  • optimizer.param_groups[0].keys()

pytorch如何借用THNN计算MSELoss, 核实是否是THNN在工作

自己的模型Net从nn.Module继承了什么

  • super(Net, self).__init__(), 在运行super class init中,同时继承了所有的methods
  • Net overwrite init(), forward() write a new func num_flat_features() for itself

nn.Module里面的dir与repr函数

  • self._modules.keys(), self.dict.keys()
  • lst = list(self._buffers.keys()), sorted(keys)

nn.Conv2d里面构建了什么

  • nn.Conv2d -> nn._ConvND -> nn.Module
  • nn._ConvND: init, reset_parameters

F.Conv2d里面发生了什么?

  • ConvNd = torch.C.functions.ConvNd

self.conv1(x) 先运行getattr再运行call

如何安装gdb从而能一路debug from python to C/C++

nn.MSELoss的解析01

  • MSELoss -> _Loss -> Module
  • 包含init, forward, pre_forward_hooks, forward_hooks, backward_hooks

nn.MSELoss的解析02

  • functions.thnn.MSELoss.apply(input, target, size_average) 调用torch.C 中的用于计算mseloss函数
  • ctx == _ContextMethodMixin, 至于是如何调用的,不清楚过程
  • 尝试理解这种方法的广泛性

optim.SGD的解析

  • init: 将params, defaults(包含超参数dict)重新打包到self.param_groups里面
  • 方便zero_grad和step 使用

全流程梳理pytorch普通建模 代码

全流程梳理pytorch 多分类建模 代码

二元分类问题的Loss设定的注意事项:代码3

  • 如果用BCEWithLogitsLoss
  • features, targets的type 要统一为torch.FloatTensor
  • targets的size要规范为(-1,1)
  • 如果用CrossEntryLoss
  • targets的type一定要是torch.LongTensor
  • 摸索过程:真实发现错误和寻找解决方案的过程
  • part1, part2, part3

探索keras内部 冗长解读

  • 查看keras内部主要的modules 0:00-7:50
  • keras.models.Sequential内部结构 –13:38
  • keras.legacy.interfaces…wrapper 让keras1与keras2互通 — 15:36
  • keras.models.add –22.10

为什么pytorch对beginner更友好 解读

看看debug方式阅读keras代码是不是比较困难

用pytorch构建自己的数据class 代码文档 part1, part2, part3, part4, 总结版

存储自己的数据,transform,batch,shuffle

如何使用Variable.backward?

如何展示处理中间层的输入和输出值

如何查看某一层的parameters 代码文档

transfer_learning_tutorial

如何叠加多个图片transformation 代码文档

ImageFolder如何将图片folder转化成模型数据格式

如何将变量信息注入到时间序列的颜色中

如何使用dataloader来做批量和随机

给一个小批量图做plotting

直接调用著名模型及其参数来用

调用的著名模型内部构造

量身修改训练好的高级模型

调试优化算法的LR的用途用法结构

train_model定制训练函数的结构

scheduler.step和model.train用法

借用的高级模型的大部分参数如何保持不变

训练完成后画一个批量的图

如何构建自己的dataset class

Deep Learning for NLP with Pytorch

NLP_pytorch_basics01 代码文档

如何设置random seed 方便数据repetition?但是用在哪里呢?

如何用list 构建torch.Tensor (Vector, Matrix, 3D-tensor)? 如何构建random normal 2D 数据?如何连接2-3个2D tensor(row-bind, col-bind)? 如何在pytorch做reshape?

如何将list变成可以做gradient的Variable?如何从Variable中提取Tensor, gradient, 以及grad_fn? 如何求运算多次之后的值y相对于x(可求导的Variable)的导数?

Variable如何保持原来的记忆?

NLP_pytorch_basics02 代码文档

训练模型识别西班牙和英文句子,内在参数能识别单词是英文还是西文?

# 49 如何构建一个Linear object, lin? 如何让input data 的shape与lin保持协调,然后用lin调用input data完成计算?

#98 F.relu是如何使用数据来完成计算的?F.softmax, F.log_softmax 内在的计算流程是怎样的?

#238 如何准备英西翻译数据?list of tuples(list, str)

#248 如何将所有句子中的独特(不重复)单词附上序号,存在dict里?

#259 回顾一下如何定义自己的模型?overwrite Module class; 为什么特征数 = vocab_size, 输出值数 = num_labels?

#283 如何写一个函数来计数每一个独特字(在一句话中的频率),返回1-row tensor (1, vocab_length)?

#290 如何用函数将label转化为idx,返回long tensor?

#302 如何打印看看每一层layer的weight, bias?

# 343 模型的唯一层的参数(2,num_vocab) 是对每个词的学习,训练来认知是(spanish, english)?

# 345 如何构建一个negative log loss object?

# 380 creo 之前的tensor (0.14, 0.13), 之后的tensor(0.53, -0.25)

Custom C extensions for pytorch

如何为pytorch写C函数extension

YunJey | pytorch-tutorial

让pytorch使用tensorboard 代码文档

    原文作者:深度碎片
    原文地址: https://zhuanlan.zhihu.com/p/29916596
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞