【发布时间】:2019-04-28 03:19:12
【问题描述】:
我正在使用 tensorflow(不是 Keras)创建一个 seq2seq 模型,输入/输出是句子。诸如聊天机器人或翻译器之类的东西。
但是当我运行时
for epoch in range(total_epoch):
_, loss = sess.run([optimizer, cost],
feed_dict={enc_input: input_batch,
dec_input: output_batch,
targets: target_batch})
我明白了
ValueError: setting an array element with a sequence.
input_batch/output_batch 是 gensim.word2vec.wv.vectors 的句子数组。
我也尝试了其他东西作为输入,但我仍然得到同样的错误。
对于目标,它是一个数组数组(每个内部数组都是一个映射到句子单词的数字列表)。
得到错误的 target_batch 如下所示:
[[297, 242, 430, 451, 507, 507, 505, 506, 506, 506, 506, 506], [297, 242, 430, 451, 507, 507, 505, 506, 506, 506, 506, 506], ...]
对于input_batch/output_batch,我什么都试过了。
我使用gensim word2vec 和inputbatch.append(input_data) input_data 是为每个句子使用gensim word2vec 如下:
model=Word2Vec(input_sentence.split(), size=5, window=10, min_count=1, workers=4, sg=1)
我已经完成了所有工作,从保存到 bin 并检索到使用 model.wv.vectors。 enc_input、dec_input 和 targets 中的所有 3 个都出现了该错误
enc_input = tf.placeholder(tf.float32, [None, None, n_input])
谢谢。
【问题讨论】:
标签: tensorflow word2vec seq2seq