Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TensorFlow和单词嵌入:传递字典_Python_Numpy_Tensorflow - Fatal编程技术网

Python TensorFlow和单词嵌入:传递字典

Python TensorFlow和单词嵌入:传递字典,python,numpy,tensorflow,Python,Numpy,Tensorflow,类似于,我想将值传递给sess.run()的feed\u dict部分。为什么当我同时使用重塑,以及展平(我之前没有观察到与当前代码相比的这些差异)时,会在不可损坏的类型上出现相同的错误 sent\u toks=nltk.sent\u标记化(ctxt) x2=np.数组(列表(语音处理器转换(发送到toks))) y=np.array(列表(vocab_processor.transform()) 导入tensorflow.contrib作为ct def NHIDDEN(): 返回1 def N

类似于,我想将值传递给
sess.run()
feed\u dict
部分。为什么当我同时使用
重塑
,以及
展平
(我之前没有观察到与当前代码相比的这些差异)时,会在不可损坏的类型上出现相同的错误

sent\u toks=nltk.sent\u标记化(ctxt)
x2=np.数组(列表(语音处理器转换(发送到toks)))
y=np.array(列表(vocab_processor.transform())
导入tensorflow.contrib作为ct
def NHIDDEN():
返回1
def NINPUT():
返回50
g=tf.Graph()
tf.reset_default_graph()
使用g.as_default():
将tf.Session(graph=g)作为sess:
而步骤<1:#培训#投标人:
x2=np.reformate(np.array(x2.flatte()),[-1,NINPUT()]))
y_嵌入=np.重塑(tf.nn.嵌入_查找(W,y),[1,-1])
_,损失,预测=sess.run([optimizer,cost,pred],feed\u dict=
{x2:x2,y:y_})
损失总额+=损失
打印(“损失=”+“{.6f}”。格式(损失总额))
步骤+=1
打印(“完成优化”)

TypeError回溯(最近一次调用)
在()
51 y_嵌入=np.重塑(tf.nn.嵌入_查找(W,y),[1,-1])
52 uu,损失,预测=sess.run([optimizer,cost,pred],feed\u dict=
--->53{x2:x2})#,y:y#})
54损失_总+=损失
55打印(“损失=”+“{.6f}”。格式(损失总额))
TypeError:不可损坏的类型:“numpy.ndarray”

我没有试图理解您的代码的细节,但确实看到了您使用feed-dict的问题。feed-dict的语法是,键是tf图中的张量-通常是
tf.placeholder
,而值是您要向其提供的数据。这里x2同时用作键和值,这可能是问题所在。因此,如果
tf_节点
是您想要提供数据的地方,那么应该使用
feed_dict={tf_节点:x2}
而不是
feed_dict={x2:x2}

希望这有帮助

sent_toks = nltk.sent_tokenize(ctxt)
x2 = np.array(list(vocab_processor.transform(sent_toks)))
y = np.array(list(vocab_processor.transform(<some other string>)))

import tensorflow.contrib as ct

def NHIDDEN():
    return 1

def NINPUT():
    return 50

g = tf.Graph()
tf.reset_default_graph()

with g.as_default():
    with tf.Session(graph = g) as sess:
        while step < 1: # training_iters:
            x2 = np.reshape(np.array(x2.flatten()), [-1, NINPUT()])
            y_embedding = np.reshape(tf.nn.embedding_lookup(W, y), [1,-1])
            _,loss, pred_ = sess.run([optimizer, cost, pred], feed_dict =
                                 {x2: x2, y: y_embedding})
            loss_total += loss
            print("loss = " + "{:.6f}".format(loss_total))
            step += 1
        print ("Finished Optimization")
TypeError                                 Traceback (most recent call last)
<ipython-input-16-ecd566e6a457> in <module>()
     51             y_embedding = np.reshape(tf.nn.embedding_lookup(W, y), [1,-1])
     52             _,loss, pred_ = sess.run([optimizer, cost, pred], feed_dict =
---> 53                                      {x2: x2}) # , y: y_embedding})
     54             loss_total += loss
     55             print("loss = " + "{:.6f}".format(loss_total))

TypeError: unhashable type: 'numpy.ndarray'