手寫數字識別

2022-05-17 19:32:22 字數 1637 閱讀 4752

import os 

os.environ['tf_cpp_min_log_level']='2' #不想讓警告的資訊輸出可以新增

from tensorflow.examples.tutorials.mnist import input_data

import tensorflow as tf

def mnist_demo():

# 載入資料集

mnist = input_data.read_data_sets('e:/soft/mnist_data',one_hot=true)

images,labels = mnist.train.next_batch(100)

print('images.shape',images.shape,'labels.shape:',labels.shape)

# 1.準備資料

x = tf.placeholder(dtype=tf.float32,shape=[none,784])

y_true = tf.placeholder(dtype=tf.float32,shape=[none,10])

# 2.構建模型 x(none,784) * weight(784,10) + bias = y(none,10)

weight = tf.variable(initial_value=tf.random_normal(shape=[784,10]))

bias = tf.variable(initial_value=tf.random_normal(shape=[10]))

y_predict = tf.matmul(x,weight) + bias

# 3.構建損失函式 softmax 交叉熵損失

error = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y_true,logits=y_predict))

# 4.優化損失

optimizer = tf.train.gradientdescentoptimizer(learning_rate=0.1).minimize(error)

# 初始化變數

init = tf.global_variables_initializer()

# 開始會話

with tf.session() as sess:

# 執行初始化變數

sess.run(init)

print('訓練模型前的損失:%f'%(sess.run(error,feed_dict=)))

# 訓練

for i in range(1000):

op,loss = sess.run([optimizer,error],feed_dict=)

print('第%d次訓練模型的損失:%f'%((i+1),loss))

手寫數字識別

這幾天在想這做字元識別方面的程式,看了很多 但是發現 上的幾乎用處都不是特別的大,理論一大堆,但是用在程式裡面則很難實現,看到有些 上說用連碼法,但是連碼法對結構的變化太敏感了,但是也從一些 裡獲得了一些靈感,我採用的是網格匹配法,準備工作採集樣本,得到了樣本的網格資訊用於接下來的識別,當然也可 一...

手寫數字識別 實戰 KNN演算法識別手寫數字

鄰近演算法,或者說k最近鄰 knn,k nearestneighbor 分類演算法是資料探勘分類技術中最簡單的方法之一。所謂k最近鄰,就是k個最近的鄰居的意思,說的是每個樣本都可以用它最接近的k個鄰居來代表。下面是我學習knn演算法的思維導圖 其中距離的定義,各個距離的公式為 歐氏距離 n維空間的距...

KNN手寫數字識別

以歐幾里得距離度量樣本間的相似程度。對於乙個測試樣本首先計算該樣本與每個訓練樣本間的距離,然後按距離值對訓練樣本進行公升序排序,排序後前k個樣本進行投票,即哪個標籤出現的次數多,就將測試樣例劃為該類。程式使用資料 預先將資料處理為,標籤資訊轉化為txt文件。from numpy import imp...