欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

利用tensorflow構建卷積神經(jīng)網(wǎng)絡(CNN)-創(chuàng)新互聯(lián)

學習前言

創(chuàng)新互聯(lián)自2013年起,先為化德等服務建站,化德等地企業(yè),進行企業(yè)商務咨詢服務。為化德企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。

學習神經(jīng)網(wǎng)絡已經(jīng)有一段時間,從普通的BP神經(jīng)網(wǎng)絡到LSTM長短期記憶網(wǎng)絡都有一定的了解,但是從未系統(tǒng)的把整個神經(jīng)網(wǎng)絡的結構記錄下來,我相信這些小記錄可以幫助我更加深刻的理解神經(jīng)網(wǎng)絡。

簡介

卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks, CNN)是一類包含卷積計算且具有深度結構的前饋神經(jīng)網(wǎng)絡(Feedforward Neural Networks),是深度學習(deep learning)的代表算法之一。

其主要結構分為輸入層、隱含層、輸出層。

在tensorboard中,其結構如圖所示:

對于卷積神經(jīng)網(wǎng)絡而言,其輸入層、輸出層與平常的卷積神經(jīng)網(wǎng)絡無異。但其隱含層可以分為三個部分,分別是卷積層(對輸入數(shù)據(jù)進行特征提取)、池化層(特征選擇和信息過濾)、全連接層(等價于傳統(tǒng)前饋神經(jīng)網(wǎng)絡中的隱含層)。

隱含層介紹

1、卷積層

卷積將輸入圖像放進一組卷積濾波器,每個濾波器激活圖像中的某些特征。

假設一副黑白圖像為5*5的大小,像這樣:

利用如下卷積器進行卷積:

利用tensorflow構建卷積神經(jīng)網(wǎng)絡(CNN)

卷積結果為:

卷積過程可以提取特征,卷積神經(jīng)網(wǎng)絡是根據(jù)特征來完成分類的。

在tensorflow中,卷積層的重要函數(shù)是:

tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=None),其中:

1、input是輸入量,shape是[batch, height, width, channels]。;

2、filter是使用的卷積核;

3、strides是步長,其格式[1,step,step,1],step指的是在圖像卷積的每一維的步長;

4、padding:string類型的量,只能是"SAME","VALID"其中之一,SAME表示卷積前后圖像面積不變。

2、池化層

池化層用于在卷積層進行特征提取后,輸出的特征圖會被傳遞至池化層進行特征選擇和信息過濾。

常見的池化是大池化,大池化指的是取出這些被卷積后的數(shù)據(jù)的大值,就是取出其大特征。

假設其池化窗口為2X2,步長為2。

原圖像為:

利用tensorflow構建卷積神經(jīng)網(wǎng)絡(CNN)

池化后為:

利用tensorflow構建卷積神經(jīng)網(wǎng)絡(CNN)

在tensorflow中,池化層的重要函數(shù)是:

tf.nn.max_pool(value, ksize, strides, padding, data_format, name)

1、value:池化層的輸入,一般池化層接在卷積層后面,shape是[batch, height, width, channels]。

2、ksize:池化窗口的大小,取一個四維向量,一般是[1, in_height, in_width, 1]。

3、strides:和卷積類似,窗口在每一個維度上滑動的步長,也是[1, stride,stride, 1]。

4、padding:和卷積類似,可以取’VALID’ 或者’SAME’。

這是tensorboard中卷積層和池化層的連接結構:

3、全連接層

全連接層與普通神經(jīng)網(wǎng)絡的結構相同,如圖所示:

具體實現(xiàn)代碼

卷積層、池化層與全連接層實現(xiàn)代碼

def conv2d(x,W,step,pad): #用于進行卷積,x為輸入值,w為卷積核

return tf.nn.conv2d(x,W,strides = [1,step,step,1],padding = pad)

def max_pool_2X2(x,step,pad): #用于池化,x為輸入值,step為步數(shù)

return tf.nn.max_pool(x,ksize = [1,2,2,1],strides= [1,step,step,1],padding = pad)

def weight_variable(shape): #用于獲得W

initial = tf.truncated_normal(shape,stddev = 0.1) #從截斷的正態(tài)分布中輸出隨機值

return tf.Variable(initial)

def bias_variable(shape): #獲得bias

initial = tf.constant(0.1,shape=shape) #生成普通值

return tf.Variable(initial)

def add_layer(inputs,in_size,out_size,n_layer,activation_function = None,keep_prob = 1):

#用于添加全連接層

layer_name = 'layer_%s'%n_layer

with tf.name_scope(layer_name):

with tf.name_scope("Weights"):

Weights = tf.Variable(tf.truncated_normal([in_size,out_size],stddev = 0.1),name = "Weights")

tf.summary.histogram(layer_name+"/weights",Weights)

with tf.name_scope("biases"):

biases = tf.Variable(tf.zeros([1,out_size]) + 0.1,name = "biases")

tf.summary.histogram(layer_name+"/biases",biases)

with tf.name_scope("Wx_plus_b"):

Wx_plus_b = tf.matmul(inputs,Weights) + biases

tf.summary.histogram(layer_name+"/Wx_plus_b",Wx_plus_b)

if activation_function == None :

outputs = Wx_plus_b

else:

outputs = activation_function(Wx_plus_b)

print(activation_function)

outputs = tf.nn.dropout(outputs,keep_prob)

tf.summary.histogram(layer_name+"/outputs",outputs)

return outputs

def add_cnn_layer(inputs, in_z_dim, out_z_dim, n_layer, conv_step = 1, pool_step = 2, padding = "SAME"):

#用于生成卷積層和池化層

layer_name = 'layer_%s'%n_layer

with tf.name_scope(layer_name):

with tf.name_scope("Weights"):

W_conv = weight_variable([5,5,in_z_dim,out_z_dim])

with tf.name_scope("biases"):

b_conv = bias_variable([out_z_dim])

with tf.name_scope("conv"):

#卷積層

h_conv = tf.nn.relu(conv2d(inputs, W_conv, conv_step, padding)+b_conv)

with tf.name_scope("pooling"):

#池化層

h_pool = max_pool_2X2(h_conv, pool_step, padding)

return h_pool

全部代碼

import tensorflow as tf

from tensorflow.examples.tutorials.mnist import input_data

mnist = input_data.read_data_sets("MNIST_data",one_hot = "true")

def conv2d(x,W,step,pad):

return tf.nn.conv2d(x,W,strides = [1,step,step,1],padding = pad)

def max_pool_2X2(x,step,pad):

return tf.nn.max_pool(x,ksize = [1,2,2,1],strides= [1,step,step,1],padding = pad)

def weight_variable(shape):

initial = tf.truncated_normal(shape,stddev = 0.1) #從截斷的正態(tài)分布中輸出隨機值

return tf.Variable(initial)

def bias_variable(shape):

initial = tf.constant(0.1,shape=shape) #生成普通值

return tf.Variable(initial)無錫人流醫(yī)院 http://www.0510bhyy.com/

def add_layer(inputs,in_size,out_size,n_layer,activation_function = None,keep_prob = 1):

layer_name = 'layer_%s'%n_layer

with tf.name_scope(layer_name):

with tf.name_scope("Weights"):

Weights = tf.Variable(tf.truncated_normal([in_size,out_size],stddev = 0.1),name = "Weights")

tf.summary.histogram(layer_name+"/weights",Weights)

with tf.name_scope("biases"):

biases = tf.Variable(tf.zeros([1,out_size]) + 0.1,name = "biases")

tf.summary.histogram(layer_name+"/biases",biases)

with tf.name_scope("Wx_plus_b"):

Wx_plus_b = tf.matmul(inputs,Weights) + biases

tf.summary.histogram(layer_name+"/Wx_plus_b",Wx_plus_b)

if activation_function == None :

outputs = Wx_plus_b

else:

outputs = activation_function(Wx_plus_b)

print(activation_function)

outputs = tf.nn.dropout(outputs,keep_prob)

tf.summary.histogram(layer_name+"/outputs",outputs)

return outputs

def add_cnn_layer(inputs, in_z_dim, out_z_dim, n_layer, conv_step = 1, pool_step = 2, padding = "SAME"):

layer_name = 'layer_%s'%n_layer

with tf.name_scope(layer_name):

with tf.name_scope("Weights"):

W_conv = weight_variable([5,5,in_z_dim,out_z_dim])

with tf.name_scope("biases"):

b_conv = bias_variable([out_z_dim])

with tf.name_scope("conv"):

h_conv = tf.nn.relu(conv2d(inputs, W_conv, conv_step, padding)+b_conv)

with tf.name_scope("pooling"):

h_pool = max_pool_2X2(h_conv, pool_step, padding)

return h_pool

def compute_accuracy(x_data,y_data):

global prediction

y_pre = sess.run(prediction,feed_dict={xs:x_data,keep_prob:1})

correct_prediction = tf.equal(tf.arg_max(y_data,1),tf.arg_max(y_pre,1))

accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))

result = sess.run(accuracy,feed_dict = {xs:batch_xs,ys:batch_ys,keep_prob:1})

return result

keep_prob = tf.placeholder(tf.float32)

xs = tf.placeholder(tf.float32,[None,784])

ys = tf.placeholder(tf.float32,[None,10])

x_image = tf.reshape(xs,[-1,28,28,1])

h_pool1 = add_cnn_layer(x_image, in_z_dim = 1, out_z_dim = 32, n_layer = "cnn1",)

h_pool2 = add_cnn_layer(h_pool1, in_z_dim = 32, out_z_dim = 64, n_layer = "cnn2",)

h_pool2_flat = tf.reshape(h_pool2,[-1,7*7*64])

h_fc1_drop = add_layer(h_pool2_flat, 7*7*64, 1024, "layer1", activation_function = tf.nn.relu, keep_prob = keep_prob)

prediction = add_layer(h_fc1_drop, 1024, 10, "layer2", activation_function = tf.nn.softmax, keep_prob = 1)

with tf.name_scope("loss"):

loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=ys,logits = prediction),name = 'loss')

tf.summary.scalar("loss",loss)

train = tf.train.AdamOptimizer(1e-4).minimize(loss)

init = tf.initialize_all_variables()

merged = tf.summary.merge_all()

with tf.Session() as sess:

sess.run(init)

write = tf.summary.FileWriter("logs/",sess.graph)

for i in range(5000):

batch_xs,batch_ys = mnist.train.next_batch(100)

sess.run(train,feed_dict = {xs:batch_xs,ys:batch_ys,keep_prob:0.5})

if i % 100 == 0:

print(compute_accuracy(mnist.test.images,mnist.test.labels))

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

當前標題:利用tensorflow構建卷積神經(jīng)網(wǎng)絡(CNN)-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://chinadenli.net/article12/cdjddc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿網(wǎng)站建設自適應網(wǎng)站、定制網(wǎng)站、云服務器、虛擬主機、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
欧美日韩精品一区免费| 天堂热东京热男人天堂| 激情五月激情婷婷丁香| 国产精品午夜性色视频| 草草草草在线观看视频| 在线观看国产午夜福利| 日韩精品视频一二三区| 国产精品欧美一区两区| 手机在线观看亚洲中文字幕| 欧美人妻少妇精品久久性色| 在线观看视频日韩精品| 免费黄色一区二区三区| 日本国产欧美精品视频| 精品女同在线一区二区| 亚洲一区二区久久观看| 在线懂色一区二区三区精品| 在线免费视频你懂的观看| 国产亚洲系列91精品| 激情亚洲一区国产精品久久| 夫妻激情视频一区二区三区| 日本一区二区三区久久娇喘| 国产熟女一区二区三区四区| 亚洲精选91福利在线观看| 久久精品中文字幕人妻中文| 精品日韩欧美一区久久| 午夜免费精品视频在线看| 国产午夜精品在线免费看| 日本办公室三级在线观看| 中文字幕熟女人妻视频| 国产一区一一一区麻豆| 激情图日韩精品中文字幕| 久久少妇诱惑免费视频| 亚洲国产成人爱av在线播放下载| 国产日韩欧美综合视频| 日韩18一区二区三区| 欧美日韩综合免费视频| 国内精品偷拍视频久久| 自拍偷女厕所拍偷区亚洲综合| 亚洲第一区欧美日韩在线| 欧美一区二区口爆吞精| 中文字幕av诱惑一区二区|