在寫CNN中注意到tensorflow目前有tf.nn.conv2d和tf.layers.conv2d這兩個很相似的API.
tf.nn.conv2d, 需要自行傳入初始化好的filter(四個維度),在初始化filter或者說Weights中,已經手動選擇了初始化方案,一般用的是tf.truncated_normal。另外tf.nn.conv2d中激活函數需要另外寫。
而在tf.layers.conv2d中,只要寫入n和size,參數列表中kernel_initializer默認是None, 不清楚這裏的參數是如何初始化的? tf.layers.conv2d中,激活函數是一個參數,不需要另外調用。
問過大神,大神答曰:一般推薦使用tf.layers.下面的函數,用起來方便。但是在tf2.0裏,tf.layers.下面的API也都被遺棄了,tf2.0推薦使用keras.layers下面的API。
tf.nn.conv2d
tf.layers.conv2d