Pytorch
文章平均质量分 75
使用Pytorch的相关记录
cnhwl
这个作者很懒,什么都没留下…
展开
-
由浅入深,带你搞懂 Pytorch 中的张量 tensor 是什么
所谓的获取一个元素所需要的索引数,我们如果有 t = [1, 2, 3, 4],想得到 3的话就得写 t[2],如果有 t = [[1,2,3], [4,5,6], [7,8,9]],想取出 3 就得写 t[0][2]a 是两行三列的矩阵(二维张量),其布局为(3,1)表示在第一个维度(行)上,走 3 格可以得到下一个元素(下一行的元素),在第二个维度(列)上,走 1 格可以得到下一个元素(下一列的元素),以此类推。张量的秩告诉我们张量有多少个轴,张量的每个轴的长度告诉我们该轴有多少索引可用。......原创 2022-08-17 17:09:09 · 2833 阅读 · 2 评论 -
Pytorch 中 LSTM 和 LSTMCell 的区别
对比即可得知,LSTMCell 就是图中的红色框,实际上就是一个隐藏层神经元,所以它没有 LSTM 中隐藏层数量这个参数。使用 LSTMCell 的方法就是 for 循环,遍历次数为。LSTM 就是中间的红色框,它将输入(蓝色框)和初始的隐藏层向量与状态向量(黄色框)作为输入,输出的是最终的隐藏层向量与状态向量(绿色框)。初始的隐藏层向量与状态向量的维度都是。初始的隐藏层向量与状态向量的维度都是。LSTMCell 的官方文档在。输入 input 的维度是。LSTM 的官方文档在。LSTM 函数的参数为。.原创 2022-08-29 17:42:01 · 1491 阅读 · 3 评论 -
Pytorch 中 Dataset 和 DataLoader,以及 torchvision 的 datasets 完全理解
Pytorch 中 Dataset 和 DataLoader,以及 torchvision 的 datasets 完全理解原创 2022-08-18 12:30:13 · 1511 阅读 · 0 评论 -
PyTorch 中各种操纵维度的函数比较 view() reshape() squeeze() unsqueeze() flatten()
使用 view(-1) 也能实现和 flatten() 一样的功能,它们区别实际上就是 view() 函数和 reshape() 函数的区别,因为 flatten() 就是用 reshape() 实现的,看下。2、正因为 view() 函数返回的是视图,它要求张量数据在内存中是连续contiguous 的,而 reshape() 函数则没有这样的要求,它可以对连续张量或者非连续张量进行操作。最后,flatten() 函数的作用是展平张量,它还可以指定开始的维度和结束的维度,默认。......原创 2022-08-14 11:42:32 · 1155 阅读 · 0 评论 -
Python 中的 with 语句用法和 Pytorch 中的 with torch.no_grad() 解析
在 Pytorch 中,tensor 有一个 requires_grad 参数,如果设置为True,这个 tensor 的梯度就会被记录,则反向传播时,该 tensor 就会自动求导。显然,当处于测试或者推理阶段时,我们不需要反向传播,因此也不希望内存被大量 tensor 的梯度所占用,为了节约内存,我们应该把所有 tensor 的 requires_grad 都设置为 False,Python 中的 with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作(...原创 2022-08-13 22:32:50 · 1357 阅读 · 0 评论 -
Pytorch中损失函数 NLLLOSS 和 CROSSENTROPYLOSS 的区别
NLLLOSS 是 negative log likelihood loss 负对数似然损失函数,CROSSENTROPYLOSS 是交叉熵损失函数,它们都是用于多分类任务的损失函数,正如我在笔记中提到的,它们实际上是一样的,在 Pytorch 中这两者的区别就只在于接收的输入不同:torch.nn.functional.cross_entropy 将 logits 作为输入(内部自动实现 log_softmax)torch.nn.functional.nll_loss 将 log-probabiliti原创 2022-06-29 12:22:29 · 1586 阅读 · 0 评论 -
Pytorch中的 torch.as_tensor() 和 torch.from_numpy() 的区别
之前我写过一篇文章,比较了 torch.Tensor() 和 torch.tensor() 的区别,而这两者都是深拷贝的方法,返回张量的同时,会在内存中创建一个额外的数据副本,与原数据不共享内存,所以不受原数据改变的影响。这里,介绍两种浅拷贝方法,torch.as_tensor() 和 torch.from_numpy(),同样还是从官方文档出发:torch.as_tensor()torch.from_numpy()直接对比着来看,最明显的,torch.as_tensor() 接收三个参数(da原创 2022-03-25 11:25:49 · 5285 阅读 · 0 评论 -
Pytorch中的 torch.Tensor() 和 torch.tensor() 的区别
直接在搜索引擎里进行搜索,可以看到官方文档中两者对应的页面:分别点击进去,第一个链接解释了什么是 torch.Tensor:torch.Tensor 是一个包含单一数据类型元素的多维矩阵(数组)。正因为 torch.Tensor 只包含单一的数据类型,所以后面文档就列出了不同数据类型对应的不同 Tensor。然后最后有一句话:torch.Tensor 是默认张量类型 (torch.FloatTensor) 的别名。也就是说,torch.Tensor() 的作用实际上跟 torch.F原创 2022-03-24 19:25:13 · 8177 阅读 · 2 评论