【问题标题】:ValueError: invalid literal for int() with base 10 (word2vec) [duplicate]ValueError:以 10 为底的 int() 的无效文字(word2vec)[重复]
【发布时间】:2016-04-11 05:28:14
【问题描述】:

这个链接我也有同样的问题:https://stackoverflow.com/questions/36504411/how-to-deal-with-this-value-error 我在这个 sn-p 上遇到了一个错误:

def load_bin_vec(fname, vocab)   
"""
Loads 300x1 word vecs from Google (Mikolov) word2vec
"""
word_vecs = {}
with open(fname, "rb") as f:
    header = f.readline()
    vocab_size, layer1_size = map(int, header.split())
    binary_len = np.dtype('float32').itemsize * layer1_size
    for line in xrange(vocab_size):

ValueError: int() 以 10 为底的无效文字:'if' 我该如何解决?

【问题讨论】:

  • 显然你打开的文件的第一行(文件名传递为fname)不仅包含整数表示。该文件的内容是什么以及它是如何创建的?您必须修复您读取的文件以匹配所需的格式,或者您必须使您的代码适应不同的文件格式。
  • 举个例子什么是header?

标签: python-2.7 anaconda


【解决方案1】:

我还是 python 和 anaconda 的新手,但经过一番搜索,我安装了 anaconda(最新版本)、gensim(最新版本)。 在 process_data.py 的第 126 行,我将其从 w2v_file = sys.argv1 更改为 w2v_file = sys.argv[1:] 。阅读有关 python sys.argv here

您将在第 293、294 行的 sys.argv[] 上的 conv_net_sent.py 上执行相同的操作。 在模块 process_data.py 的第 64 行,将 fname 更改为“GoogleNews-vectors-negative300.bin”。 该模块将运行良好。 我只注意到在训练阶段运行 conv_net_sent.py 模块时,我得到了 python.exe 停止工作错误。 在 anaconda 上使用蜘蛛时,我收到一个错误:设备 gpu0 不可用(错误:cuda 不可用),目前正在处理。 我希望这有帮助。 问候

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-09
    • 2020-01-04
    • 2010-12-22
    • 2011-07-07
    • 2019-10-14
    相关资源
    最近更新 更多