入门 - nlp and torch 和 常用代码段 (项目代码每日复盘) 更新ing
基础代码段复盘:
时间:7.3新
安装类的:
1.Annaconda 增加删除镜像 channel, 以及其他python包安装解决办法
2.ubuntu利用conda创建虚拟环境,并安装cuda,cudnn,pytorch
3.ffmpeg使用
书写代码类的:
3. pytorch常用操作和方法:这个比较好,比第一个
5. 各种新建操作
6. pytorch:加载预训练模型中的部分参数,并固定该部分参数(真实有效)
8.Pytorch中nn.ModuleList和nn.Sequential的用法和区别
9.理解'*','*args','**','**kwargs'
学习类:
1.卷积神经网络CNN 写的很棒,很简单就理解了什么是cnn
3.视频理解论文杂读
4.深度学习中 Batch Normalization为什么效果好?
项 目 代 码 理 解:
持续更新,都是项目源码(●'◡'●)
1. 元组代码汇总
ent,phlens = zip(*b.ent) #解压得到的也为tuple b.ent = (ent,phlens,elens) #直接变三元组
2. list代码汇总
b.rel = [self.listTo(adj),self.listTo(rel)] # 两个list合并成一个list
3.tranpose and view 两者的区别与联系
首先,tran是矩阵翻转那种类型的,view仅仅是改变形状(简单的理解就是:先把一个tensor转换成一个一维的tensor,然后再组合成指定维度的tensor),也许你需要的是翻转,而不是改变形状,实验如下所示,并且记住当做完trans后的view必须新开一个内存。
上面是汇总的对比,view和trans的区别,view就是直接了当的排列数据,trans就不是,trans有一点点复杂 。我问了一下我男票,后来明白了
1)维度是 2,2,3的矩阵,进行 1,2的transpose变换是这样:
左边是原来的,右边是转置的,就相当于你有两份数据,每份数据进行了矩阵转置的操作 ,大家关键需要看坐标!!!每个数字都有自己的坐标
2)进行0,1维度的transpose操作:
我很蒙,当时....,其实大家主要看坐标,比如第二行的 (3,2,1)坐标分别是 (0,1,0),(0,1,1),(0,1,2) ————> (1,0,0),(1,0,1),(1,0,2)这亚子,所以变成了:
4.zeros_like函数,从函数名不难猜到,这个函数是用于生成和输入tensor大小相同的全零tensor的。
5.repeat()和expand()区别:
作用就是对指定的维度进行数值大小的改变。只能改变维大小为1的维,否则就会报错。 而 repeat 沿着指定的维度,对原来的tensor进行数据复制。这个函数和expand()还是有点区别的。expand()只能对维度为1的维进行扩大,而repeat()对所有的维度可以随意操作
6.Tensor的合并与分割:https://www.jianshu.com/p/4e57dbe1d281
参考链接:
https://www.jianshu.com/p/cf7adeff2a05