CNN(Convolutional Neural Networks) 卷積神經(jīng)網(wǎng)絡(luò)簡(jiǎn)單講就是把一個(gè)圖片的數(shù)據(jù)傳遞給CNN,原涂層是由RGB組成,然后CNN把它的厚度加厚,長(zhǎng)寬變小,每做一層都這樣被拉長(zhǎng),最后形成一個(gè)分類器
創(chuàng)新互聯(lián)公司是一家專注于成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),鳳岡網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:鳳岡等地區(qū)。鳳岡做網(wǎng)站價(jià)格咨詢:13518219792在 CNN 中有幾個(gè)重要的概念:
stride,就是每跨多少步抽取信息。每一塊抽取一部分信息,長(zhǎng)寬就縮減,但是厚度增加。抽取的各個(gè)小塊兒,再把它們合并起來(lái),就變成一個(gè)壓縮后的立方體。
padding,抽取的方式有兩種,一種是抽取后的長(zhǎng)和寬縮減,另一種是抽取后的長(zhǎng)和寬和原來(lái)的一樣。
pooling,就是當(dāng)跨步比較大的時(shí)候,它會(huì)漏掉一些重要的信息,為了解決這樣的問(wèn)題,就加上一層叫pooling,事先把這些必要的信息存儲(chǔ)起來(lái),然后再變成壓縮后的層
利用tensorflow搭建CNN,也就是卷積神經(jīng)網(wǎng)絡(luò)是一件很簡(jiǎn)單的事情,筆者按照官方教程中使用MNIST手寫數(shù)字識(shí)別為例展開(kāi)代碼,整個(gè)程序也基本與官方例程一致,不過(guò)在比較容易迷惑的地方加入了注釋,有一定的機(jī)器學(xué)習(xí)或者卷積神經(jīng)網(wǎng)絡(luò)制式的人都應(yīng)該可以迅速領(lǐng)會(huì)到代碼的含義。
#encoding=utf-8 import tensorflow as tf import numpy as np from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets('MNIST_data', one_hot=True) def weight_variable(shape): initial = tf.truncated_normal(shape,stddev=0.1) #截?cái)嗾龖B(tài)分布,此函數(shù)原型為尺寸、均值、標(biāo)準(zhǔn)差 return tf.Variable(initial) def bias_variable(shape): initial = tf.constant(0.1,shape=shape) return tf.Variable(initial) def conv2d(x,W): return tf.nn.conv2d(x,W,strides=[1,1,1,1],padding='SAME') # strides第0位和第3為一定為1,剩下的是卷積的橫向和縱向步長(zhǎng) def max_pool_2x2(x): return tf.nn.max_pool(x,ksize = [1,2,2,1],strides=[1,2,2,1],padding='SAME')# 參數(shù)同上,ksize是池化塊的大小 x = tf.placeholder("float", shape=[None, 784]) y_ = tf.placeholder("float", shape=[None, 10]) # 圖像轉(zhuǎn)化為一個(gè)四維張量,第一個(gè)參數(shù)代表樣本數(shù)量,-1表示不定,第二三參數(shù)代表圖像尺寸,最后一個(gè)參數(shù)代表圖像通道數(shù) x_image = tf.reshape(x,[-1,28,28,1]) # 第一層卷積加池化 w_conv1 = weight_variable([5,5,1,32]) # 第一二參數(shù)值得卷積核尺寸大小,即patch,第三個(gè)參數(shù)是圖像通道數(shù),第四個(gè)參數(shù)是卷積核的數(shù)目,代表會(huì)出現(xiàn)多少個(gè)卷積特征 b_conv1 = bias_variable([32]) h_conv1 = tf.nn.relu(conv2d(x_image,w_conv1)+b_conv1) h_pool1 = max_pool_2x2(h_conv1) # 第二層卷積加池化 w_conv2 = weight_variable([5,5,32,64]) # 多通道卷積,卷積出64個(gè)特征 b_conv2 = bias_variable([64]) h_conv2 = tf.nn.relu(conv2d(h_pool1,w_conv2)+b_conv2) h_pool2 = max_pool_2x2(h_conv2) # 原圖像尺寸28*28,第一輪圖像縮小為14*14,共有32張,第二輪后圖像縮小為7*7,共有64張 w_fc1 = weight_variable([7*7*64,1024]) b_fc1 = bias_variable([1024]) h_pool2_flat = tf.reshape(h_pool2,[-1,7*7*64]) # 展開(kāi),第一個(gè)參數(shù)為樣本數(shù)量,-1未知 f_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat,w_fc1)+b_fc1) # dropout操作,減少過(guò)擬合 keep_prob = tf.placeholder(tf.float32) h_fc1_drop = tf.nn.dropout(f_fc1,keep_prob) w_fc2 = weight_variable([1024,10]) b_fc2 = bias_variable([10]) y_conv = tf.nn.softmax(tf.matmul(h_fc1_drop,w_fc2)+b_fc2) cross_entropy = -tf.reduce_sum(y_*tf.log(y_conv)) # 定義交叉熵為loss函數(shù) train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy) # 調(diào)用優(yōu)化器優(yōu)化 correct_prediction = tf.equal(tf.argmax(y_conv,1), tf.argmax(y_,1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float")) sess = tf.InteractiveSession() sess.run(tf.initialize_all_variables()) for i in range(2000): batch = mnist.train.next_batch(50) if i%100 == 0: train_accuracy = accuracy.eval(feed_dict={x:batch[0], y_: batch[1], keep_prob: 1.0}) print "step %d, training accuracy %g"%(i, train_accuracy) train_step.run(feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5}) print "test accuracy %g"%accuracy.eval(feed_dict={x: mnist.test.images[0:500], y_: mnist.test.labels[0:500], keep_prob: 1.0})
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
新聞標(biāo)題:用tensorflow搭建CNN的方法-創(chuàng)新互聯(lián)
URL分享:http://muchs.cn/article48/dhgehp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開(kāi)發(fā)、網(wǎng)站建設(shè)、網(wǎng)站改版、全網(wǎng)營(yíng)銷推廣、外貿(mào)建站、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容