问题标签 [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.

0 投票
1 回答
2911 浏览

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_ptrcython(和numpypytorch​​、等)会shared_ptr正确共享吗?

如果问题很幼稚,我深表歉意;Python 垃圾收集对我来说非常神秘。

任何建议表示赞赏。

0 投票
1 回答
1132 浏览

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 库。

0 投票
1 回答
5835 浏览

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 例程(需要检查)

当问题收敛并且我得到一个合理的解决方案时,我想知道实施是否正确。具体来说,如果理解梯度和然后计算自适应学习率是否正确?

0 投票
1 回答
12487 浏览

torch - pytorch 自定义层“不是模块子类”

我是 PyTorch 的新手,在使用了一段时间的不同工具包后尝试了一下。

我想了解如何对自定义层和功能进行编程。作为一个简单的测试,我写了这个:

这旨在使通过它的数据总和为1。实际上没有用,只是在测试中。

然后我将它插入到 PyTorch Playground 的示例代码中:

结果是错误!

也许这需要是一个函数而不是一个模块?也不清楚功能,模块之间有什么区别。

例如,为什么一个 Function 需要一个backward(),即使它完全由标准 pytorch 原语构造而成,而一个 Module 不需要这个?

0 投票
1 回答
6171 浏览

python - Pytorch:稀疏矩阵乘法

鉴于:

目标1:

目标2:

结果1:

结果2:

我的 PyTorch 版本是 0.1.12_2 - 非常感谢可能的解决方案。

0 投票
1 回答
4672 浏览

torch - 什么时候需要 pytorch 自定义功能(而不仅仅是一个模块)?

Pytorch 初学者在这里!考虑以下自定义模块:

据我了解文档:我相信这也可以作为自定义实现Function。的子类Function需要backward()方法,但 Module不需要。同样,在 Linear 的文档示例中Module,它取决于 Linear Function

问题:我不明白 和 之间的Module关系Function。在上面的第一个清单(模块Testme)中,它应该有关联的功能吗?如果不是,那么可以通过子类化 Module 来实现这一点而无需backward方法,那么为什么Function总是需要backward方法呢?

也许Functions 仅适用于不是由现有的火炬功能组成的功能?Function换一种说法:如果模块的forward方法完全由先前定义的 Torch 函数组成,也许模块不需要关联?

0 投票
3 回答
69573 浏览

python - 如何将 numpy 数组列表加载到 pytorch 数据集加载器?

我有一个庞大的 numpy 数组列表,其中每个数组代表一个图像,我想使用 torch.utils.data.Dataloader 对象加载它。但是 torch.utils.data.Dataloader 的文档提到它直接从文件夹加载数据。我如何为我的原因修改它?我是 pytorch 的新手,任何帮助将不胜感激。我的单个图像的 numpy 数组看起来像这样。图像是 RBG 图像。

0 投票
1 回答
3129 浏览

gpu - 将函数元素应用于 Pytorch CUDA 张量的并行方式

假设我有一个火炬 CUDA 张量,我想应用一些函数,sin()但我已经明确定义了函数F。如何使用并行计算F在 Pytorch 中应用。

0 投票
3 回答
15593 浏览

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 功能做到这一点?现在,我正在使用循环执行此操作,但我想避免循环!

0 投票
1 回答
5176 浏览

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 之后仍然会给出相同的错误。

谢谢!