Python 无法运行Poincare嵌入示例以获取层次表示

Python 无法运行Poincare嵌入示例以获取层次表示,python,hierarchical-data,word-embedding,Python,Hierarchical Data,Word Embedding,我正试图复制Facebook Research发布的“现在”。但是我无法运行example.sh在重建设置中嵌入哺乳动物子树 OS:Ubuntu 16.04,使用Anaconda4.3.30、Python3.6.5、Pytorch0.4.0 命令:NHTHREDS=2./example.sh 错误日志: Using 2 threads slurp: objects=1181, edges=6541 Indexing data json_conf: {"distfn": "poincare", "

我正试图复制Facebook Research发布的“现在”。但是我无法运行
example.sh
在重建设置中嵌入哺乳动物子树

OS:Ubuntu 16.04,使用Anaconda4.3.30、Python3.6.5、Pytorch0.4.0

命令
NHTHREDS=2./example.sh

错误日志:

Using 2 threads
slurp: objects=1181, edges=6541
Indexing data
json_conf: {"distfn": "poincare", "dim": 5, "lr": 0.3, "batchsize": 10, "negs": 50}
Burnin: lr=0.003
'Traceback (most recent call last):\n  File "/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 57, in _worker_loop\n    samples = collate_fn([dataset[i] for i in batch_indices])\n  File "/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 57, in <listcomp>\n    samples = collate_fn([dataset[i] for i in batch_indices])\n  File "/home/harman/harman_workspace/poincare-embeddings/model.py", line 185, in __getitem__\n    if n not in self._weights[t]:\nKeyError: tensor(491)\n'
Traceback (most recent call last):
  File "/home/harman/harman_workspace/poincare-embeddings/train.py", line 19, in train_mp
    train(model, data, optimizer, opt, log, rank, queue)
  File "/home/harman/harman_workspace/poincare-embeddings/train.py", line 46, in train
    for inputs, targets in loader:
  File "/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 286, in __next__
    return self._process_next_batch(batch)
  File "/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 307, in _process_next_batch
    raise batch.exc_type(batch.exc_msg)
KeyError: 'Traceback (most recent call last):\n  File "/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 57, in _worker_loop\n    samples = collate_fn([dataset[i] for i in batch_indices])\n  File "/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 57, in <listcomp>\n    samples = collate_fn([dataset[i] for i in batch_indices])\n  File "/home/harman/harman_workspace/poincare-embeddings/model.py", line 185, in __getitem__\n    if n not in self._weights[t]:\nKeyError: tensor(491)\n'
'Traceback (most recent call last):\n  File "/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 57, in _worker_loop\n    samples = collate_fn([dataset[i] for i in batch_indices])\n  File "/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 57, in <listcomp>\n    samples = collate_fn([dataset[i] for i in batch_indices])\n  File "/home/harman/harman_workspace/poincare-embeddings/model.py", line 185, in __getitem__\n    if n not in self._weights[t]:\nKeyError: tensor(491)\n'
Traceback (most recent call last):
  File "/home/harman/harman_workspace/poincare-embeddings/train.py", line 19, in train_mp
    train(model, data, optimizer, opt, log, rank, queue)
  File "/home/harman/harman_workspace/poincare-embeddings/train.py", line 46, in train
    for inputs, targets in loader:
  File "/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 286, in __next__
    return self._process_next_batch(batch)
  File "/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 307, in _process_next_batch
    raise batch.exc_type(batch.exc_msg)
KeyError: 'Traceback (most recent call last):\n  File "/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 57, in _worker_loop\n    samples = collate_fn([dataset[i] for i in batch_indices])\n  File "/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 57, in <listcomp>\n    samples = collate_fn([dataset[i] for i in batch_indices])\n  File "/home/harman/harman_workspace/poincare-embeddings/model.py", line 185, in __getitem__\n    if n not in self._weights[t]:\nKeyError: tensor(491)\n'
使用两个线程
slurp:objects=1181,edges=6541
索引数据
json_conf:{“distfn”:“庞加莱”,“dim”:5,“lr”:0.3,“batchsize”:10,“negs”:50}
磨合:lr=0.003
“回溯(最近一次调用):\n文件“/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py”,第57行,在\u-worker\u-loop\n-samples=collate\u-fn([dataset[i]表示批次索引中的i])\n文件“/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py”,第57行,in\n samples=collate\u fn([dataset[i]表示批次索引中的i])\n文件“/home/harman/harman\u workspace/poincare embeddengs/model.py”,第185行,in\uu getitem\uu\n如果n不在self中。\u权重[t]:\nKeyError:tensor(491)\n
回溯(最近一次呼叫最后一次):
文件“/home/harman/harman_workspace/poincare embeddings/train.py”,第19行,列车mp中
培训(模型、数据、优化器、opt、日志、排名、队列)
文件“/home/harman/harman_workspace/poincare embeddings/train.py”,第46行,列车中
对于输入,加载器中的目标:
文件“/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py”,第286行,下一页__
返回自。\处理\下一批\批次(批次)
文件“/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py”,第307行,在下一批处理中
raise batch.exc_类型(batch.exc_msg)
KeyError:“Traceback(最近一次调用):\n File”/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site packages/torch/utils/data/dataloader.py”,第57行,在\u worker\u循环中\n samples=collate\u fn([dataset[i]表示批索引中的i])\n文件“/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py”,第57行,in\n samples=collate\u fn([dataset[i]for i in batch\u index])\n文件“/home/harman/harman\u workspace/poincare embeddings/model.py”,第185行,in\u getitem\n如果n不在self中。\权重[t]:\nKeyError:tensor(491)\n”
“Traceback(最近一次调用):\n File”/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py”,第57行,在\u-worker\u循环\n samples=collate\u fn([dataset[i]表示批索引中的i])\n File”/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py“,第57行,in\n samples=collate\u fn([dataset[i]表示批次索引中的i])\n File”/home/harman/harman\u workspace/poincare embeddings/model.py”,第185行,in\uu getitem\uuuuu\n如果n不在self中。\u权重[t]:\nKeyError:tensor(491)\n”
回溯(最近一次呼叫最后一次):
文件“/home/harman/harman_workspace/poincare embeddings/train.py”,第19行,列车mp中
培训(模型、数据、优化器、opt、日志、排名、队列)
文件“/home/harman/harman_workspace/poincare embeddings/train.py”,第46行,列车中
对于输入,加载器中的目标:
文件“/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py”,第286行,下一页__
返回自。\处理\下一批\批次(批次)
文件“/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py”,第307行,在下一批处理中
raise batch.exc_类型(batch.exc_msg)
KeyError:“Traceback(最近一次调用):\n File”/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site packages/torch/utils/data/dataloader.py”,第57行,在\u worker\u循环中\n samples=collate\u fn([dataset[i]表示批索引中的i])\n文件“/home/harman/anaconda3/envs/pytorch-venv/lib/python3.6/site-packages/torch/utils/data/dataloader.py”,第57行,in\n samples=collate\u fn([dataset[i]for i in batch\u index])\n文件“/home/harman/harman\u workspace/poincare embeddings/model.py”,第185行,in\u getitem\n如果n不在self中。\权重[t]:\nKeyError:tensor(491)\n”

任何帮助都将不胜感激。

我也有同样的错误。这与它的版本有关。

这是解决方案,他们回答了关于h,w,t的int的变化 我试过了,但是失败了,我试过了torch 1.0.0到0.3.1的版本。它成功了

希望能解决问题