我正在使用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,它是一个数组数组(每个内部数组都是映射到句子中单词的数字的列表)。
获取错误的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
enc_input = tf.placeholder(tf.float32, [None, None, n_input])
谢谢。
答案 0 :(得分:0)
似乎您必须将向量张量目标批次的形状与供稿字典app.use(express.static("public"))
中的键进行匹配。从documentation for tensorflow Session.py:
可选的feed_dict参数允许调用者覆盖 图中张量的值。 feed_dict中的每个键都可以是 以下类型: 如果键是tf.Tensor,则值可能是可以转换为相同dtype的Python标量,字符串,列表或numpy ndarray 作为那个张量。此外,如果密钥是tf.placeholder,则 将检查值的形状是否与 占位符。
占位符必须具有与输入张量兼容的形状。将numpy数组用于目标批次可能更容易,并使用它来设置占位符的尺寸,如下所示:
enc_input, dec_input, targets
没有更多信息,我无法测试,但希望能对您有所帮助。