![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pytorch笔记
文章平均质量分 70
唐僧爱吃唐僧肉
这个作者很懒,什么都没留下…
展开
-
torch as_strided函数详解
假设有一个矩阵X[123456789]\left[\begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9\end{matrix}\right]⎣⎡147258369⎦⎤如果卷积核大小是2*2,stride为1,那么就需要把矩阵转换为如下4个小矩阵的新矩阵[[1245][2356][4567][5678]]\left[\begin{matrix} \left[\原创 2022-07-07 16:39:05 · 1247 阅读 · 0 评论 -
二分类问题,应该选择sigmoid还是softmax函数
二分类的激活函数通常选择sigmoid或者softmax函数,对于二分类的问题,sigmoid函数和softmax函数可以等价首先记隐层的输出为h。如果使用sigmoid的话,输出层有一个结点,值为θh\theta hθh。然后类别1,2的预测概率分别为:p1=sigmoid(θh)=11+e−θhp_{1} = sigmoid(\theta h) = \frac{1}{1+e^{-\theta h}}p1=sigmoid(θh)=1+e−θh1p2=1−sigmoid(θh)=11+eθhp_转载 2021-03-14 14:46:29 · 6002 阅读 · 2 评论 -
pytorch collaten_fn函数取出数值操作
collate_fn函数可以在取出数值的时候对每次进行前面补充0的操作,很方便每一个批次对于数据进行操作首先定义对应的MyDataset类import torchfrom torch.utils.data import Dataset, DataLoader# 1. 用Dataset封装数据集,仅做示范,实际可直接用TensorDataset封装class MyDataset(Dataset): def __init__(self, x, y): #assert x.siz原创 2021-03-13 16:04:10 · 323 阅读 · 0 评论 -
pytorch dataloader使用教程
dataloader是pytorch之中可以灵活地取出数值的一个相应类,首先需要将自己使用的数据用Dataset封装起来,然后打包成为DataLoader变量进行操作import torchfrom torch.utils.data import Dataset, DataLoaderx = torch.randn(128, 3)y = torch.randn(128, 1)# 1. 用Dataset封装数据集,仅做示范,实际可直接用TensorDataset封装class MyDataset(原创 2021-03-13 09:56:11 · 670 阅读 · 0 评论 -
斯皮尔曼相关系数的解读
最近在编写程序的时候使用到了scipy.stats.spearmanr这个库,由于自己之前未曾使用过斯皮尔曼相关系数,对于这个调用函数理解不够深度,特编写文章记录自己的学习过程。斯皮尔曼相关系数是一个衡量两个变量的依赖性的非参数指标,它并不假设两个数据集是相同分布的,像其他的相关系数一样,这个变量的范围从-1到+1,0暗示着两个参数之间没有相关性。如果数据中没有重复值,并且两个变量完全单调相关时,斯皮尔曼相关系数为+1或-1,当X增加时,Y趋向于增加时,斯皮尔曼相关系数为正,而当X增加并且Y趋向于减少时,原创 2021-01-06 22:59:22 · 39946 阅读 · 6 评论 -
The current Numpy installation fails to pass a sanity check due to a bug in the windows runtime.问题解决
最近换了一台电脑去配置python以及tensorflow的各种环境,不得不说手动配置真是麻烦啊,代码当中各种版本不兼容报库bug。之前写代码库函数报如下的错误:The current Numpy installation fails to pass a sanity check due to a bug in the windows runtime. See this issue for more information: https://tinyurl.com.其实这是下的python包不兼容的问原创 2020-12-27 21:15:28 · 213 阅读 · 0 评论 -
pytorch lstm源代码解读
最近阅读了pytorch中lstm的源代码,发现其中有很多值得学习的地方。首先查看pytorch当中相应的定义 \begin{array}{ll} \\ i_t = \sigma(W_{ii} x_t + b_{ii} + W_{hi} h_{t-1} + b_{hi}) \\ f_t = \sigma(W_{if} x_t + b_{if} + W_{hf} h_{t-1} + b_{hf}) \\ g_t = \t原创 2021-01-02 13:42:54 · 4189 阅读 · 7 评论 -
交叉验证区分k折代码分析
from sklearn.model_selection import GroupKFoldx = np.array([1,2,3,4,5,6,7,8,9,10])y = np.array([1,2,3,4,5,6,7,8,9,10])z = np.array(['hello1','hello2','hello3','hello4','hello5','hello6','hello7','hello8','hello9','hello10'])gkf = GroupKFold(n_splits =原创 2020-12-13 16:45:10 · 230 阅读 · 0 评论 -
一文弄懂Pytorch的DataLoader,DataSet和Sampler之间关系
1.自上而下理解三者关系首先我们看一下DataLoader.next的源代码长什么样,为方便理解我只选取了num_works为0的情况(num_works简单理解就是能够并行化地读取数据)class DataLoader(object): ... def __next__(self): if self.num_workers == 0: indices = next(self.sample_iter) # Sampler转载 2020-12-13 10:58:22 · 531 阅读 · 0 评论 -
skip-gram-负采样中的神经网络操作过程详解
如果batch_size = 128,正采样的单词左右各采样相应的3个单词,共采样6个单词负采样共采样对应的60个相应的单词,则输入的矩阵中input_embedding = [128]pos_embedding = [128,6],neg_embedding = [128,60](注意这里面的batch=128的情况下,每一次输入单词的维度应该一致)然后使用扩充维度的操作使得input_embedding = [128,100],pos_embedding =[128,6,100],neg_em原创 2020-12-08 09:45:21 · 603 阅读 · 0 评论 -
pytorch中的dataloader批次数值取出使用
pytorch当中的dataloader可以实现相应的取出对应的dataloader的数值并进行使用,对应的定义如下# 实现Dataloaderclass Dataset(tud.Dataset): # 继承tud.Dataset父类 def __init__(self, text, word_to_idx, idx_to_word, word_freqs, word_counts): super(Dataset, self).__init__()原创 2020-12-04 20:03:49 · 2753 阅读 · 0 评论 -
jupyter notebook对应的bug探究
首先运行一个简单的python对应的程序这里可以看出,data初始化的数值为[],然后在list里面压入一个1,变为[1]此时如果再次运行第二部分的对应程序可以看出来data是在原先data的基础上继续插入相应的数据,因为原先内存中的data已经改变,所以接着运行的时候data会在原先的顺序上继续添加对应的1...原创 2020-11-11 15:06:17 · 237 阅读 · 0 评论 -
pytorch transpose函数解析
transpose函数的本意是将两个相应的维度进行变换,比如如下的这个tensor矩阵import torchX = torch.Tensor([[1,2,3],[4,5,6]])X = X.transpose(0, 1)print(X)输出结果为可以看出矩阵相当于一个变换操作,原先的行变为现在的列,原先的列变为现在的行现在变换X对应的矩阵的内容,将X变为227的对应的矩阵原先X对应的矩阵内容为经过如下的对应的矩阵变换X = X.transpose(0,1)变换的结果为这里原创 2020-11-10 16:02:55 · 2992 阅读 · 0 评论 -
pytorch中textrnn对应的结构理解
首先贴出一张经典的textrnn的流程图对应的textrnn的结构如下:~~~pythonimport torchimport torch.nn as nnrnn = nn.RNN(10,20,2)#10为输入x的特征大小,20为隐藏层h的特征大小#2为循环层的数量(RNN中重复的部分)#input_size = 10,hidden_size = 20,num_layers = 2input = torch.randn(5,3,10)h0 = torch.randn(2,3,20原创 2020-11-09 15:22:35 · 947 阅读 · 2 评论