【发布时间】:2021-11-15 12:21:02
【问题描述】:
在 PyTorch 中运行 AutoEncoder 模型时,我发现了一个奇怪的错误。
我的代码:
model = AutoEncoder(num_items, args.inner_layers, num_items, da=args.num_attention, dropout_rate=args.dropout_rate)
item_vector = self.linear1.weight[:, T.LongTensor(batch_item_index[0].astype(np.int32))]
inner_product = item_vector.t().mm(self.linear4.weight.t())
在看到一些类似的小问题(https://github.com/jwyang/faster-rcnn.pytorch/issues/311)中批量索引的原因是-1的解释后,我尝试让索引从0开始,但没有奏效。
这是我第一次在 Stack Overflow 上没有类似的问题,我做错了什么?
Traceback (most recent call last):
File "run.py", line 155, in <module>
main()
File "run.py", line 151, in main
train_autoencoder(train_matrix, test_set)
File "run.py", line 86, in train_autoencoder
y_pred = model(batch_item_index, place_correlation)
File "C:\Users\user\anaconda3\envs\saenad\lib\site-packages\torch\nn\modules\module.py", line 491, in __call__
result = self.forward(*input, **kwargs)
File "C:\Users\user\saenad\model.py", line 58, in forward
inner_product = item_vector.t().mm(self.linear4.weight.t())
RuntimeError: invalid argument 1: out of range at c:\programdata\miniconda3\conda-bld\pytorch_1524543037166\work\aten\src\th\generic/THTensor.cpp:454**
【问题讨论】:
-
item_vector和self.linear4.weight的.shape是什么? -
感谢您的回答。项向量形状为 (200, 16)。当我打印 item_vector 时, tensor(1.00000e-03 * [[ 1.6500, ..., -5.2615],... [-1.2557, ..., 4.1297]]) 我发现“ item_vector.t() ”发生错误..但我找不到解决方案..
标签: python pytorch autoencoder