'''隨機產生乙個輸入資料
'''# 輸入資料:(1,32,32,1):(輸入一張圖,高度32,寬度32,通道數為1)
input_data = np.random.randn(32,32).reshape(1,32,32,1)
'''第一層卷積
'''# 卷積核,(5,5,1,8):(高度5,寬度5,通道數1,輸出卷積核個數8)
filter_ = np.random.randn(5,5,8).reshape(5,5,1,8)
# 第一層卷積,(1,1,1,1):(1,高度方向移動步長,寬度方向移動步長),'v':不會自動補零
conv = tf.nn.conv2d(input=input_data,filter=filter_,strides=[1,1,1,1],padding='valid')
# 池化,(1,2,2,1):(1,池化核高度,池化核寬度,1),(1,2,2,1):(高度方向移動步長,寬度方向移動步長),'s':自動補零
pool = tf.nn.max_pool(conv,ksize=[1,2,2,1],strides=[1,2,2,1],padding='same')
# 啟用
relu = tf.nn.relu(pool)
# dropout 保留60%連線
dropout = tf.nn.dropout(relu,keep_prob=0.6)
'''第二層卷積
'''# 卷積核
filter2 = np.random.randn(5,5,8,20)
conv2 = tf.nn.conv2d(input=dropout,filter=filter2,strides=[1,1,1,1],padding='valid')
# 池化
pool2 = tf.nn.max_pool(conv2,ksize=[1,2,2,1],strides=[1,2,2,1],padding='same')
# 啟用
sigmod = tf.nn.sigmoid(pool2)
# dropout
dropout2 = tf.nn.dropout(pool2,keep_prob=0.5)
'''全連線層
'''# 權重
dense = np.random.randn(500,120)
fc = tf.reshape(dropout2,shape=[1,5*5*20])
# 相乘
conn = tf.matmul(fc,dense)
# 輸出層
w = np.random.randn(120,9)
b = np.random.randn(9)
out = tf.matmul(conn,w)+b
print(out)
with tf.session() as sess:
print(sess.run(out))
tensor("add:0", shape=(1, 9), dtype=float64)[[ 56292.23092699 -25663.07097064 10046.3161544 -10689.08116037
95927.7495999 31923.13009604 -29105.7761752 76256.49429168
49508.435624 ]]
神經網路 卷積神經網路
這篇卷積神經網路是前面介紹的多層神經網路的進一步深入,它將深度學習的思想引入到了神經網路當中,通過卷積運算來由淺入深的提取影象的不同層次的特徵,而利用神經網路的訓練過程讓整個網路自動調節卷積核的引數,從而無監督的產生了最適合的分類特徵。這個概括可能有點抽象,我盡量在下面描述細緻一些,但如果要更深入了...
神經網路 卷積神經網路
1.卷積神經網路概覽 來自吳恩達課上一張,通過對應位置相乘求和,我們從左邊矩陣得到了右邊矩陣,邊緣是白色寬條,當畫素大一些時候,邊緣就會變細。觀察卷積核,左邊一列權重高,右邊一列權重低。輸入,左邊的部分明亮,右邊的部分灰暗。這個學到的邊緣是權重大的寬條 都是30 表示是由亮向暗過渡,下面這個圖左邊暗...
卷積神經網路 有趣的卷積神經網路
一 前言 最近一直在研究深度學習,聯想起之前所學,感嘆數學是一門樸素而神奇的科學。f g m1 m2 r 萬有引力描述了宇宙星河運轉的規律,e mc 描述了恆星發光的奧秘,v h d哈勃定律描述了宇宙膨脹的奧秘,自然界的大部分現象和規律都可以用數學函式來描述,也就是可以求得乙個函式。神經網路 簡單又...