<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
關於折積的具體操作不細講,本文只是自己太懶了不想記手寫筆記。
由於自己接觸到的都是影象
處理相關的工作,因此,在這裡只介紹2D折積。
keras.layers.convolutional.Conv2D(filters,kernel_size,strides(1,1), padding='valid', data_format=None, dilation_rate=(1,1), activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)
此操作將二維向量進行折積,當使用該層作為第一層時,應提供input_shape引數。
filters
:折積核的數目(即輸出的維度)。kernel_size
:單個整數或由兩個整數構成的list/tuple,折積核的寬度和長度。如為單個整數,則表示在各個空間維度的相同長度。strides
:單個整數或由兩個整數構成的list/tuple,為折積的步長。如為單個整數,則表示在各個空間維度的相同步長。任何不為1的strides均與任何不為1的dilation_rata均不相容。padding
:補0策略,為“valid”, “same”。“valid”代表只進行有效的折積,即對邊界資料不處理。“same”代表保留邊界處的折積結果,通常會導致輸出shape與輸入shape相同。activation
:啟用函數,為預定義的啟用函數名(參考啟用函數),或逐元素(element-wise)的Theano函數。如果不指定該引數,將不會使用任何啟用函數(即使用線性啟用函數:a(x)=x)。dilation_rate
:單個整數或由兩個個整數構成的list/tuple,指定dilated convolution中的膨脹比例。任何不為1的dilation_rata均與任何不為1的strides均不相容。data_format
:字串,“channels_first”或“channels_last”之一,代表影象的通道維的位置。該引數是Keras 1.x中的image_dim_ordering,“channels_last”對應原本的“tf”,“channels_first”對應原本的“th”。以128x128的RGB影象為例,“channels_first”應將資料組織為(3,128,128),而“channels_last”應將資料組織為(128,128,3)。該引數的預設值是~/.keras/keras.json中設定的值,若從未設定過,則為“channels_last”。use_bias
:布林值,是否使用偏置項。kernel_initializer
:權值初始化方法,為預定義初始化方法名的字串,或用於初始化權重的初始化器。bias_initializer
:權值初始化方法,為預定義初始化方法名的字串,或用於初始化權重的初始化器。kernel_regularizer
:施加在權重上的正則項,為Regularizer物件。bias_regularizer
:施加在偏置向量上的正則項,為Regularizer物件。activity_regularizer
:施加在輸出上的正則項,為Regularizer物件。kernel_constraints
:施加在權重上的約束項,為Constraints物件。bias_constraints
:施加在偏置上的約束項,為Constraints物件。conv2d和conv2dTranspose屬於最常用的層,但在keras的實現中關於padding的部分有點模糊,週末趁著空閒做了一些嘗試,來實驗padding的valid和same引數在實際過程中如何操作的。
conv2D部分
v_input = np.ones([1,5,5,1]) kernel = np.ones([3,3]) stride = 1 model = Sequential() model.add(Conv2D(1, kernel_size=(3, 3), activation='relu', padding="valid" , # "same" strides = 1, # dilation_rate = 1, kernel_initializer = keras.initializers.Ones(), input_shape=v_input.shape[1:]))
其中stride可以嘗試多組測試
padding在valid 和 same 間切換測試
padding 為valid則不進行填充, 根據stride的滑動大小來做平移, 則:
output_shape = ceil( (input_shape - (kernel_size - 1)) / stride )
如果是same模式則 會進行左右上下的補齊, 其中左,上依次補齊 flood (kernel_size -1 ) / 2 , 右下補齊ceil (( kernel_size - 1) /2 ) ,補齊後進行的操作就是類似valid下的滑動折積
output_shape = ceil (input_shape / stride)
ceil
表示上取整 flood
表示下取整v_input = np.ones([1,5,5,1]) kernel = np.ones([3,3]) stride = 1 model = Sequential() model.add(Conv2DTranspose(1, kernel_size=(3, 3), activation='relu', padding="valid" , # "same" strides = 1, # dilation_rate = 1, kernel_initializer = keras.initializers.Ones(), input_shape=v_input.shape[1:]))
如果padding的設定為valid則,保持最小相交的原則上下左右均填充kernel_size大小,如果stride設定為非1,起實際的作用和dilation_rate一樣均是在矩陣中進行填充(實際滑動是永遠都是1) 具體填充出來的矩陣大小是 (input_size -1) * stride + 1 + 2 * (kernel_size - 1)
之後就是按照這個矩陣做著類似conv2d valid的折積 則:
output_shape = (input_size -1) * stride + 1 + 2 * (kernel_size - 1) - (kernel_size -1) = (input_size - 1) * stride + kernel_size
如果padding為same的話則output_shape = input_shape * stride
其中原始矩陣左上padding = ceil (( kernel_size ) /2 ) 右下補齊 flood (( kernel_size ) /2 ) 這裡conv2d
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45