我在tensorflow神經網絡的工作池的形狀,我有一個名爲CNN_model函數作爲輸入三個佔位符:利用預留作爲tensorflow
X = tf.placeholder(tf.float32, [1, None, 13])
Y = tf.placeholder(tf.int32, [None])
和
pool_shape = tf.placeholder(tf.int32, [1])
我運行具有以下值的會話:
feed_dict={X: x, Y: y, MFCCS: x.shape[0]}
在會話中,我想要使用max-pooling層它是由佔位這樣定義形狀:
pool_window_size = [pool_shape, pool_shape]
pool = tf.layers.max_pooling2d(
inputs = conv,
pool_size = pool_window_size,
strides = pool_window_size,
name = "pool"
)
但我得到的錯誤:
類型錯誤:int()函數的參數必須是一個字符串,一類字節對象或數量,而不是'張量'
我假設是因爲在那個時候「pool_shape」是一個張量而不僅僅是一個整數,有沒有辦法獲得張量在這個點上的任何值?
如果我可以問,你爲什麼要改變池內核的大小?你能想出一種方法來實現你的任務而不做它嗎? – hars
我想使用動態池,因爲我有可變大小的輸入示例,所以我希望池層根據示例的形狀生成固定大小的輸出。我一直在使用零填充來使所有示例具有相同的形狀,但我擔心準確性會更差。 – Aaronrobeson