tensorflow之獲取tensor的shape作為max_pool的ksize實例
實驗發(fā)現(xiàn),tensorflow的tensor張量的shape不支持直接作為tf.max_pool的參數(shù),比如下面這種情況(一個錯誤的示范):
self.max_pooling1 = tf.nn.max_pool(self.l_6, ksize = [1, tf.shape(self.F1)[0], 1, 1], strides = [1, 1, 1, 1], padding = 'VALID', name = 'maxpool1')
我在max_pool的過程中想對特征每一列進行max_pooling,但因為tensor F1張量沒有值,而ksize此處需要一個int類型的常量,所以tf.shape(self.F1)[0]無法作為ksize的參數(shù)。
一些人的做法是固定行數(shù),比如pointnet固定為2048個點,但這樣做需要重新采樣,過于麻煩。
而既然tensorflow不提供標準的max_pool層實現(xiàn),其實可以自己實現(xiàn)每一列取最大值的操作,充當自己的max_pool。如下圖所示:
def max_pooling(self, NC):
out = tf.reduce_max(NC, reduction_indices=[0])
return out
利用reduce_max剛好能實現(xiàn)這個操作,其中reduction_indices可以指定取哪一維的最大值。這個函數(shù)的詳細功能可以參考官方文檔。
這種情況和tf.reshape不同,tf.reshape是可以使用tf.shape(tensor)[i]的,可能兩者對參數(shù)的要求不一樣。
以上這篇tensorflow之獲取tensor的shape作為max_pool的ksize實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺談Python里面None True False之間的區(qū)別
這篇文章主要介紹了淺談Python里面None True False之間的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
Python實現(xiàn)正弦信號的時域波形和頻譜圖示例【基于matplotlib】
這篇文章主要介紹了Python實現(xiàn)正弦信號的時域波形和頻譜圖,涉及Python數(shù)學運算與圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2018-05-05
淺談Keras中fit()和fit_generator()的區(qū)別及其參數(shù)的坑
這篇文章主要介紹了Keras中fit()和fit_generator()的區(qū)別及其參數(shù)的坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05

