0

我試圖根據使用feed_dict(每批輸入更改的尺寸)輸入的尺寸來分割張量。目前我不斷收到一個錯誤,指出張量不能與「尺寸」分開。有沒有辦法獲得維度的價值和使用它的分裂?使用Feed Dict輸入尺寸的Tensorflow拆分

謝謝!

input_d = tf.placeholder(tf.int32, [None, None], name="input_d") 

# toy feed dict 
feed = { 
    input_d: [[20,30,40,50,60],[2,3,4,5,-1]] # document 
} 

W_embeddings = tf.get_variable(shape=[vocab_size, embedding_dim], \ 
        initializer=tf.random_uniform_initializer(-0.01, 0.01),\ 
        name="W_embeddings") 
document_embedding = tf.gather(W_embeddings, input_d) 

timesteps_d = document_embedding.get_shape()[1] 
doc_input = tf.split(1, timesteps_d, document_embedding) 
+0

什麼是錯誤消息的一些有關單證?你能打印出'seq_lens'的值嗎?'document_embedding'? – drpng

+0

'TypeError:參數'num_split'的預期int不是Dimension(None).' – kewzha

+0

'get_shape()。shape [1]''怎麼樣? – drpng

回答

0

tf.split花費的num_split參數蟒整數。但是,document_embedding.get_shape()返回TensorShape,而document_embedding.get_shape()[1]給出了Dimension實例,因此您會收到一條錯誤消息,提示「無法使用維分割」。

嘗試timestep_ds = document_embedding.get_shape().as_list()[1],這個聲明應該給你一個python整數。

這裏是tf.splittf.Tensor.get_shape