mnist.pkl.gz
先來用乙個神經網路
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)
x=tf.placeholder(tf.float32,[none,784])#輸入佔位符(每張手寫數字784個畫素點)
#placeholder(type,strucuct…)第乙個引數是你要儲存的資料的資料型別,大多數是tensorflow中的float32資料型別,後面的引數就是要儲存資料的結構,
# 計算分類softmax會將xw+b分成10類,對應0-9
w=tf.variable(tf.zeros([784,10])) #權重
#tf.variable()返回乙個tf.variable類的例項。zeros初始值 。
b=tf.variable(tf.zeros([10]))#偏置
init=tf.global_variables_initializer()#初始化 tf.initialize_all_variables()
y=tf.nn.softmax(tf.matmul(tf.reshape(x,[-1,784]),w)+b)# 輸入矩陣x與權重矩陣w相乘,加上偏置矩陣b,然後求softmax(sigmoid函式公升級版,可以分成多類)
#tf.matmul實現了矩陣乘法的功能。
y_=tf.placeholder(tf.float32,[none,10])#輸入佔位符(這張手寫數字具體代表的值,0-9對應矩陣的10個位置)
cross_entropy=-tf.reduce_sum(y_*tf.log(y))# 計算偏差和
# 使用梯度下降法(步長0.01),來使偏差和最小
is_correct=tf.equal(tf.argmax(y,1),tf.argmax(y_,1))
#argmax( input, axis=none, name=none, dimension=none )
#argmax返回的是索引值,返回每一行或者每一列的最大值的索引,當選擇axis=1時。表示每一行的最大值,0表示每列的最大值索引
accuracy=tf.reduce_mean(tf.cast(is_correct,tf.float32))
#求平均值tf.reduce_mean(input_tensor, reduction_indices=none, keep_dims=false, name=none)
#input_tensor:待求值的tensor。
#reduction_indices:在哪一維上求解。如果不指定第二個引數,那麼就在所有的元素中取平均值
# 為0,則第一維的元素取平均值,即每一列求平均值。為1,則第二維的元素取平均值,即每一行求平均值
optimizer=tf.train.gradientdescentoptimizer(0.003)
train_step=optimizer.minimize(cross_entropy)
#最速下降法讓交叉熵下降,步長為0.003. 返回的train_step操作物件,在執行時會使用梯度下降來更新引數。因此,整個模型的訓練可以通過反覆地執行train_step來完成。
sess=tf.session()
sess.run(init)
for i in range(1000): #訓練1000次
batch_x,batch_y=mnist.train.next_batch(100)# 隨機取100個手寫數字
train_data=
sess.run(train_step,feed_dict=train_data)# 執行梯度下降演算法,輸入值x:batch_x,輸入值y:batch_y
print(sess.run(accuracy, feed_dict=)) #執行精度圖,x和y_從測試手寫中取值
手寫數字識別
這幾天在想這做字元識別方面的程式,看了很多 但是發現 上的幾乎用處都不是特別的大,理論一大堆,但是用在程式裡面則很難實現,看到有些 上說用連碼法,但是連碼法對結構的變化太敏感了,但是也從一些 裡獲得了一些靈感,我採用的是網格匹配法,準備工作採集樣本,得到了樣本的網格資訊用於接下來的識別,當然也可 一...
手寫數字識別
import os os.environ tf cpp min log level 2 不想讓警告的資訊輸出可以新增 from tensorflow.examples.tutorials.mnist import input data import tensorflow as tf def mnis...
Python手寫數字識別之路1
元組字串 格式化字串 序列雖然python是從c語言發展而來,但是我覺得和c語言區別巨大。首先玩乙個小遊戲 python import random counts 3answer random.randint 1,10 生成乙個隨機數,guess while counts 0 temp input ...