tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=none, name=none)
第乙個引數input:指需要做卷積的輸入影象,它要求是乙個tensor,具有[batch, in_height, in_width,
in_channels]這樣的shape,具體含義是[訓練時乙個batch的數量, 高度, 寬度,
影象通道數],注意這是乙個4維的tensor,要求型別為float32和float64其中之一
第二個引數filter:相當於cnn中的卷積核,它要求是乙個tensor,具有[filter_height, filter_width,
in_channels, out_channels]這樣的shape,具體含義是[卷積核的高度,卷積核的寬度,影象通道數,卷積核個數],要求型別與引數input相同,filter的通道數要求與input的in_channels一致,有乙個地方需要注意,第三維in_channels,就是引數input的第四維
第三個引數strides:卷積時在影象每一維的步長,這是乙個一維的向量,長度4,strides[0]=strides[3]=1 第四個引數padding:string型別的量,只能是"same","valid"其中之一,這個值決定了不同的卷積方式(後面會介紹)
第五個引數:use_cudnn_on_gpu:bool型別,是否使用cudnn加速,預設為true。結果返回乙個tensor,這個輸出,就是我們常說的feature map
第六個引數:不同的padding方式,valid是採用丟棄的方式,same的方式,左右補零
for the same padding, the output height and width are computed as:
out_height = ceil(float(in_height) / float(strides[1]))
out_width = ceil(float(in_width) / float(strides[2]))
for the valid padding, the output height and width are computed as:
out_height = ceil(float(in_height - filter_height + 1) / float(strides[1]))
out_width = ceil(float(in_width - filter_width + 1) / float(strides[2]))
tf.nn.max_pool(value, ksize, strides, padding, name=none)
第乙個引數value:需要池化的輸入,一般池化層接在卷積層後面,所以輸入通常是feature map,依然是[batch, height, width, channels]這樣的shape
第二個引數ksize:池化視窗的大小,取乙個四維向量,一般是[1, height, width, 1],因為我們不想在batch和channels上做池化,所以這兩個維度設為了1
第三個引數strides:和卷積類似,視窗在每乙個維度上滑動的步長,一般也是[1, stride,stride, 1]
第四個引數padding:和卷積類似,可以取'valid' 或者'same'
Python之函式(一)定義函式以及傳參
函式的定義 def 函式名 函式體 例子 def func def關鍵字 定義 func函式名 和變數定義規則一樣 必須要寫格式 宣告 語句結束 s 1,2,3 count 0 for i in s count 1 print count 呼叫函式 def my len s 1,2,23,3,4,5...
建構函式以及this
實際上建構函式與普通的函式並沒有區別,所以一般在開發中會使用大駝峰命名規則來區別普通的函式,建構函式實際上是通過返回乙個this值來完成建構函式的建立的.這個rutern this的操作由new這個操作符來完成,當然個人也可以手動來設定return的返回值,手動設定的返回值會覆蓋由new所自動新增的...
建構函式以及this
實際上建構函式與普通的函式並沒有區別,所以一般在開發中會使用大駝峰命名規則來區別普通的函式,建構函式實際上是通過返回乙個this值來完成建構函式的建立的.這個rutern this的操作由new這個操作符來完成,當然個人也可以手動來設定return的返回值,手動設定的返回值會覆蓋由new所自動新增的...