当StanfordNLP的TreeLSTM与具有> 30K实例的数据集一起使用时,会导致LuaJit错误地显示"Not Enough Memory".我正在使用LuaJit Data Structures解决这个问题.为了将数据集放在lua堆之外,需要将树放在LDS.Vector中.
由于LDS.Vector包含cdata,第一步是将Tree类型转换为cdata对象:
local ffi = require('ffi')
ffi.cdef([[
typedef struct CTree {
struct CTree* parent;
int num_children;
struct CTree* children [25];
int idx;
int gold_label;
int leaf_idx;
} CTree;
]])
Run Code Online (Sandbox Code Playgroud)
在read_data.lua中还需要进行一些小的更改来处理新的cdata CTree类型.到目前为止,使用LDS似乎是解决内存限制的合理方法; 但是,CTree需要一个名为"composer"的字段.
Composer的类型为nn.gModule.继续使用此解决方案将涉及将nn.gModule的typedef创建为cdata,包括为其成员创建typedef.在继续之前,这似乎是正确的方向吗?有没有人遇到过这个问题?
我正在研究一个Torch/Lua项目,我在其中实现了一个人工神经网络模型.一切正常,但现在我想以下列方式修改我的代码.由于我的输入数据集非常大,我想将它除以N = 20跨度.
然后我想仅在第一个数据集范围内训练我的神经网络,然后并行测试其他N-1 = 19个跨度.
要运行所有这些并行作业,我需要将神经网络模型详细信息保存到文件中,然后为每19个作业加载它.
火炬有没有办法正确"写"人工神经网络模型到文件?
我试图将一些字符串表保存到Torch中的文件.我尝试过使用Deepmind的这个Torch扩展:hdf5.
require 'hdf5'
label = {'a', 'b','c','d'}
local myFile = hdf5.open(features_repo .. 't.h5', 'w')
myFile:write('label', label)
myFile:close()
Run Code Online (Sandbox Code Playgroud)
我收到错误:
/home/user/torch/install/bin/luajit: ...e/user/torch/install/share/lua/5.1/hdf5/group.lua:222: torch-hdf5: writing data of type string is not supported
Run Code Online (Sandbox Code Playgroud)
Torch Tensors按预期写入文件.
我也尝试使用matio写入mat文件(对于MatLab).我收到此错误:
bad argument #1 to 'varCreate' (cannot convert 'number' to 'const char *')
Run Code Online (Sandbox Code Playgroud) 我有一个浮点值列表(或一个numpy数组).我想创建一个包含所有这些值的1d火炬张量.我可以创建火炬张量并运行循环来存储值.
但我想知道有什么办法,我可以用列表或数组中的初始值创建一个火炬张量?还建议我,如果有任何pythonic方式来实现这一点,因为我在pytorch工作.
由于我只有AMD A10-7850 APU,而且没有足够的资金用于购买价值800美元至1200美元的NVIDIA显卡,我试图通过我拥有的资源来实现,以便通过tensorflow/keras加速深度学习.
最初,我使用了Tensorflow的预编译版本.InceptionV3需要大约1000-1200秒来计算1个纪元.它一直很缓慢.
为了加快计算速度,我首先使用优化器(使用AVX和SSE4指令)自行编译Tensorflow.这导致计算时间减少约40%.上面执行的相同计算现在只需要大约600秒来计算.它几乎可以忍受 - 有点像你可以看油漆干.
我正在寻找进一步减少计算时间的方法.我只有一个集成的AMD显卡,它是APU的一部分.(如何)(C/c)我利用这个资源来进一步加速计算?
更一般地说,让我们说有其他人有类似的货币限制和英特尔设置.没有分立的NVIDIA显卡的人如何利用他们的集成显卡芯片或其他非NVIDIA设置来实现比仅CPU性能更快的速度?那可能吗?为什么/为什么不呢?要实现这一目标需要做些什么?或者这可能在不久的将来(2-6个月)?怎么样?
我想在pytorch中编写一个简单的autoencoder并使用BCELoss,但是我得到了NaN,因为它期望目标在0和1之间.有人可以发布一个简单的BCELoss用例吗?
我目前在Anaconda上使用Python 3.5.5,我无法导入火炬.它在Spyder中给我以下错误:
Python 3.5.5 |Anaconda, Inc.| (default, Mar 12 2018, 17:44:09) [MSC v.1900
64 bit (AMD64)]
Type "copyright", "credits" or "license" for more information.
IPython 6.2.1 -- An enhanced Interactive Python.
import torch
Traceback (most recent call last):
File "<ipython-input-1-eb42ca6e4af3>", line 1, in <module>
import torch
File "C:\Users\trish\Anaconda3\envs\virtual_platform\lib\site-
packages\torch\__init__.py", line 76, in <module>
from torch._C import *
ImportError: DLL load failed: The specified module could not be found.
Run Code Online (Sandbox Code Playgroud)
互联网上的许多建议都说工作目录不应该是火炬包所在的目录,但是我手动将我的工作目录设置为C:/ Users/trish/Downloads,我收到同样的错误.
此外,我已经尝试了以下内容:从头开始重新安装Anaconda和所有软件包,我确保我的目录中没有重复的"torch"文件夹.
请帮忙!谢谢!
最近在研究Pytorch和backward函数的封装。我明白如何使用它,但是当我尝试时
x = Variable(2*torch.ones(2, 2), requires_grad=True)
x.backward(x)
print(x.grad)
Run Code Online (Sandbox Code Playgroud)
我预计
tensor([[1., 1.],
[1., 1.]])
Run Code Online (Sandbox Code Playgroud)
因为它是恒等函数。然而,它返回
tensor([[2., 2.],
[2., 2.]]).
Run Code Online (Sandbox Code Playgroud)
为什么会出现这种情况?
我的问题是当我尝试运行这段代码时
if log_to_tensorboard: from torch.utils.tensorboard import SummaryWriter
if log_to_tensorboard: writer = SummaryWriter()
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
(导入 SummaryWriter 工作没有任何问题,但后来我尝试运行“writer = SummaryWriter()”,但它不起作用)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-23-d77d9d09e62b> in <module>
----> 1 writer = SummaryWriter()
/anaconda3/lib/python3.6/site-packages/torch/utils/tensorboard/writer.py in __init__(self, log_dir, comment, purge_step, max_queue, flush_secs, filename_suffix)
223 # and recreated later as needed.
224 self.file_writer = self.all_writers = None
--> 225 self._get_file_writer()
226
227 # Create default bins for histograms, see generate_testdata.py in tensorflow/tensorboard
/anaconda3/lib/python3.6/site-packages/torch/utils/tensorboard/writer.py in _get_file_writer(self)
254 if self.all_writers is None or self.file_writer …Run Code Online (Sandbox Code Playgroud) 我可以使用 6 个 24GB GPU。当我尝试加载一些 HuggingFace 模型时,例如以下
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
tokenizer = AutoTokenizer.from_pretrained("google/ul2")
model = AutoModelForSeq2SeqLM.from_pretrained("google/ul2")
Run Code Online (Sandbox Code Playgroud)
我收到内存不足错误,因为该模型似乎只能在单个 GPU 上加载。然而,虽然整个模型无法装入单个 24GB GPU 卡,但我有 6 个 GPU 卡,并且想知道是否有一种方法可以将模型加载分布到多个卡上,以执行推理。
HuggingFace 似乎有一个网页,他们解释了如何执行此操作,但截至目前还没有任何有用的内容。
python multi-gpu deep-learning torch huggingface-transformers
torch ×10
lua ×3
python ×3
pytorch ×3
tensorflow ×2
autoencoder ×1
c ×1
caffe ×1
gradient ×1
hdf5 ×1
loss ×1
lstm ×1
multi-gpu ×1
stanford-nlp ×1
tensorboard ×1
theano ×1