问题标签 [pytorch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 在 Cython 中处理 C++ 数组(使用 numpy 和 pytorch)
我正在尝试用来cython
包装 C++ 库(fastText
如果相关)。C++ 库类从磁盘加载一个非常大的数组。我的包装器从 C++ 库实例化一个类以加载数组,然后使用cython
内存视图并将numpy.asarray
数组转换为numpy
数组,然后调用torch.from_numpy
以创建张量。
出现的问题是如何处理数组的内存释放。
现在,pointer being freed was not allocated
当程序退出时,我得到了。我希望这是因为 C++ 代码和numpy
/pytorch
都在尝试管理同一块 RAM。
我可以简单地注释掉 C++ 库中的析构函数,但感觉它会给我带来一个不同的问题。
我应该如何处理这个问题?是否有任何关于如何使用 C++ 处理内存共享的最佳实践文档cython
?
如果我修改 C++ 库以将数组包装在 a 中shared_ptr
,cython
(和numpy
、pytorch
、等)会shared_ptr
正确共享吗?
如果问题很幼稚,我深表歉意;Python 垃圾收集对我来说非常神秘。
任何建议表示赞赏。
python - Pytorch 的 OpenNMT 问题:cPickle.UnpicklingError: invalid load key, ''
我正在尝试使用链接中的说明运行 OpenNMT 项目:http: //forum.opennmt.net/t/text-summarization-on-gigaword-and-rouge-scoring/85/6
我正在使用 Python 2.7 并从 github 存储库安装了 pytorch。
我正在尝试使用 OpenNMT 的预构建模型运行程序,该模型已从以下网址下载:http: //opennmt.net/Models/
我尝试了命令:
得到以下错误:
请让我知道我需要做什么,以便我可以使用该模型并检查 OpenNMT 库。
python - 在 Python 中实现 Adagrad
我正在尝试在 Python 中实现 Adagrad。出于学习目的,我以矩阵分解为例。我会使用Autograd来计算梯度。
我的主要问题是实施是否良好。
问题描述
给定一个包含一些缺失条目的矩阵 A (M x N),分解为 W 和 H,分别具有 (M xk) 和 (k XN) 大小。目标是使用 Adagrad 学习 W 和 H。我将按照本指南进行 Autograd 实施。
注意:我非常清楚基于 ALS 的实施非常适合。我仅将 Adagrad 用于学习目的
习惯进口
创建要分解的矩阵
屏蔽一个条目
定义成本函数
分解参数
成本 wrt 参数 W 和 H 的梯度
主要的 Adagrad 例程(需要检查)
当问题收敛并且我得到一个合理的解决方案时,我想知道实施是否正确。具体来说,如果理解梯度和然后计算自适应学习率是否正确?
torch - pytorch 自定义层“不是模块子类”
我是 PyTorch 的新手,在使用了一段时间的不同工具包后尝试了一下。
我想了解如何对自定义层和功能进行编程。作为一个简单的测试,我写了这个:
这旨在使通过它的数据总和为1。实际上没有用,只是在测试中。
然后我将它插入到 PyTorch Playground 的示例代码中:
结果是错误!
也许这需要是一个函数而不是一个模块?也不清楚功能,模块之间有什么区别。
例如,为什么一个 Function 需要一个backward()
,即使它完全由标准 pytorch 原语构造而成,而一个 Module 不需要这个?
python - Pytorch:稀疏矩阵乘法
鉴于:
目标1:
目标2:
结果1:
结果2:
我的 PyTorch 版本是 0.1.12_2 - 非常感谢可能的解决方案。
torch - 什么时候需要 pytorch 自定义功能(而不仅仅是一个模块)?
Pytorch 初学者在这里!考虑以下自定义模块:
据我了解文档:我相信这也可以作为自定义实现Function
。的子类Function
需要backward()
方法,但
Module
不需要。同样,在 Linear 的文档示例中Module
,它取决于 Linear Function
:
问题:我不明白 和 之间的Module
关系Function
。在上面的第一个清单(模块Testme
)中,它应该有关联的功能吗?如果不是,那么可以通过子类化 Module 来实现这一点而无需backward
方法,那么为什么Function
总是需要backward
方法呢?
也许Function
s 仅适用于不是由现有的火炬功能组成的功能?Function
换一种说法:如果模块的forward
方法完全由先前定义的 Torch 函数组成,也许模块不需要关联?
python - 如何将 numpy 数组列表加载到 pytorch 数据集加载器?
我有一个庞大的 numpy 数组列表,其中每个数组代表一个图像,我想使用 torch.utils.data.Dataloader 对象加载它。但是 torch.utils.data.Dataloader 的文档提到它直接从文件夹加载数据。我如何为我的原因修改它?我是 pytorch 的新手,任何帮助将不胜感激。我的单个图像的 numpy 数组看起来像这样。图像是 RBG 图像。
gpu - 将函数元素应用于 Pytorch CUDA 张量的并行方式
假设我有一个火炬 CUDA 张量,我想应用一些函数,sin()
但我已经明确定义了函数F
。如何使用并行计算F
在 Pytorch 中应用。
pytorch - 从给定为张量的索引创建一个热向量
我有一个大小的张量,4 x 6
其中 4 是批量大小,6 是序列长度。序列向量的每个元素都是某个索引(0 到 n)。我想创建一个4 x 6 x n
张量,其中第 3 维的向量将是索引的一个热编码,这意味着我想将 1 放入指定的索引中,其余的值将为零。
例如,我有以下张量:
在这里,所有值都在 (0 到 n) 之间,其中 n = 15。所以,我想将张量转换为4 X 6 X 16
第三维将代表一个热编码向量的张量。
如何使用 PyTorch 功能做到这一点?现在,我正在使用循环执行此操作,但我想避免循环!
division - pytorch 中的张量分割。断言错误
这是一个 pytorch 初学者的问题。在 pytorch 中,我试图用两个大小为 [5,5,3] 的张量进行元素除法。在 numpy 中,使用 np.divide() 可以正常工作,但不知何故我在这里遇到错误。我正在为 Python 3.5 使用 PyTorch 版本 0.1.12。
c = [torch.DoubleTensor 大小为 5x5x3]
input_patch = [torch.FloatTensor 大小为 5x5x3]
input_patch 是一个 torch.autograd 变量的切片,c 是通过做 c = torch.from_numpy(self.patch_filt[:, :, :, 0]).float()
做的时候:
我收到这个我不明白的错误。
这是否意味着变量 c 不应该是 torch_tensor?在将 c 转换为 FloatTensor 之后仍然会给出相同的错误。
谢谢!