2017-10-11 16 views
1

之前,我想申請完全連接層到數據投影到一個[batch_size, max_time, 10]形狀。整形三維張量鑑於<code>shape=[batch_size, max_time, 128]</code>張量(一個RNN的輸出),爲此<code>max_time</code>可能會發生變化的緻密層

問題是:我是否需要先重塑輸入張量,合併前兩個維度,然後應用tf.layers.dense,然後重新塑形回3D?或者我可以簡單地在3D張量上使用tf.layers.dense來獲得等效的效果?

我想具有用於128個RNN單元和10級輸出的類之間的所有連接共享的單個權重矩陣,從而允許在每個批次相同的可變長度max_time

回答

0

經過進一步調查,看來這兩個選項是等價的。

Dense.call()方法檢查維數。如果它大於2,則計算輸入和權重之間的tensordot(與numpy.tensordot相對應的操作),將輸入中的最後一個維和權重中的第一個維選爲軸。否則它應用標準矩陣乘法(matmul)。

Source

相關問題