激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python tensorflow基于cnn實現手寫數字識別

python tensorflow基于cnn實現手寫數字識別

2020-12-30 00:42LN_IOS Python

這篇文章主要為大家詳細介紹了python tensorflow基于cnn實現手寫數字識別,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

一份基于cnn的手寫數字自識別的代碼,供大家參考,具體內容如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# -*- coding: utf-8 -*-
 
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
 
# 加載數據集
mnist = input_data.read_data_sets('MNIST_data', one_hot=True)
 
# 以交互式方式啟動session
# 如果不使用交互式session,則在啟動session前必須
# 構建整個計算圖,才能啟動該計算圖
sess = tf.InteractiveSession()
 
"""構建計算圖"""
# 通過占位符來為輸入圖像和目標輸出類別創建節點
# shape參數是可選的,有了它tensorflow可以自動捕獲維度不一致導致的錯誤
x = tf.placeholder("float", shape=[None, 784]) # 原始輸入
y_ = tf.placeholder("float", shape=[None, 10]) # 目標值
 
# 為了不在建立模型的時候反復做初始化操作,
# 我們定義兩個函數用于初始化
def weight_variable(shape):
 # 截尾正態分布,stddev是正態分布的標準偏差
 initial = tf.truncated_normal(shape=shape, stddev=0.1)
 return tf.Variable(initial)
def bias_variable(shape):
 initial = tf.constant(0.1, shape=shape)
 return tf.Variable(initial)
 
# 卷積核池化,步長為1,0邊距
def conv2d(x, W):
 return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')
def max_pool_2x2(x):
 return tf.nn.max_pool(x, ksize=[1, 2, 2, 1],
       strides=[1, 2, 2, 1], padding='SAME')
 
"""第一層卷積"""
# 由一個卷積和一個最大池化組成。濾波器5x5中算出32個特征,是因為使用32個濾波器進行卷積
# 卷積的權重張量形狀是[5, 5, 1, 32],1是輸入通道的個數,32是輸出通道個數
W_conv1 = weight_variable([5, 5, 1, 32])
# 每一個輸出通道都有一個偏置量
b_conv1 = bias_variable([32])
 
# 位了使用卷積,必須將輸入轉換成4維向量,2、3維表示圖片的寬、高
# 最后一維表示圖片的顏色通道(因為是灰度圖像所以通道數維1,RGB圖像通道數為3)
x_image = tf.reshape(x, [-1, 28, 28, 1])
 
# 第一層的卷積結果,使用Relu作為激活函數
h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1))
# 第一層卷積后的池化結果
h_pool1 = max_pool_2x2(h_conv1)
 
"""第二層卷積"""
W_conv2 = weight_variable([5, 5, 32, 64])
b_conv2 = bias_variable([64])
h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2)
h_pool2 = max_pool_2x2(h_conv2)
 
"""全連接層"""
# 圖片尺寸減小到7*7,加入一個有1024個神經元的全連接層
W_fc1 = weight_variable([7*7*64, 1024])
b_fc1 = bias_variable([1024])
# 將最后的池化層輸出張量reshape成一維向量
h_pool2_flat = tf.reshape(h_pool2, [-1, 7*7*64])
# 全連接層的輸出
h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, W_fc1) + b_fc1)
 
"""使用Dropout減少過擬合"""
# 使用placeholder占位符來表示神經元的輸出在dropout中保持不變的概率
# 在訓練的過程中啟用dropout,在測試過程中關閉dropout
keep_prob = tf.placeholder("float")
h_fc1_drop = tf.nn.dropout(h_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))
 
# 模型訓練,使用AdamOptimizer來做梯度最速下降
train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy)
 
# 正確預測,得到True或False的List
correct_prediction = tf.equal(tf.argmax(y_, 1), tf.argmax(y_conv, 1))
# 將布爾值轉化成浮點數,取平均值作為精確度
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
 
# 在session中先初始化變量才能在session中調用
sess.run(tf.global_variables_initializer())
 
# 迭代優化模型
for i in range(2000):
 # 每次取50個樣本進行訓練
 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}) # 模型中間不使用dropout
  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, y_: mnist.test.labels, keep_prob: 1.0}))

做了2000次迭代,在測試集上的識別精度能夠到0.9772……

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/LN_IOS/article/details/77966232

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成年人毛片视频 | 亚洲第一综合 | 久久男人天堂 | 91高清免费观看 | 午夜爽爽爽男女免费观看hd | 婷婷中文字幕一区二区三区 | 精品在线免费播放 | 亚洲第一色婷婷 | 性色av一区二区三区在线播放亚… | 国产美女精品视频 | 国产亚洲精品综合一区91 | 欧美日韩手机在线观看 | 日本中文视频 | 91高清国产 | 亚洲国产中文字幕 | 日韩av电影在线免费观看 | 羞羞的视频在线免费观看 | 亚洲欧美日韩综合一区 | 九草av| 亚洲码无人客一区二区三区 | 日韩av在线网址 | 福利免费观看 | 精品一区二区三区在线观看国产 | 久久6国产 | 91短视频版高清在线观看免费 | 久久91久久久久麻豆精品 | 网站激情 | 国产91亚洲精品一区二区三区 | 欧美黑大粗硬毛片视频 | 亚洲一区二区中文字幕在线观看 | 免费一区区三区四区 | 欧美成人精品欧美一级乱黄 | 曰韩一级片 | 日日草天天干 | 欧美日韩一 | av成人在线电影 | 日韩欧美精品中文字幕 | 亚洲日韩精品欧美一区二区 | 99影视在线视频免费观看 | 中文字幕在线观看视频www | 欧美综合成人 |