国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

使用TensorFlow搭建一個全連接神經網絡教程

2020-02-15 21:22:07
字體:
來源:轉載
供稿:網友

說明

本例子利用TensorFlow搭建一個全連接神經網絡,實現對MNIST手寫數字的識別。

先上代碼

from tensorflow.examples.tutorials.mnist import input_dataimport tensorflow as tf# prepare datamnist = input_data.read_data_sets('MNIST_data', one_hot=True)xs = tf.placeholder(tf.float32, [None, 784])ys = tf.placeholder(tf.float32, [None, 10])# the model of the fully-connected networkweights = tf.Variable(tf.random_normal([784, 10]))biases = tf.Variable(tf.zeros([1, 10]) + 0.1)outputs = tf.matmul(xs, weights) + biasespredictions = tf.nn.softmax(outputs)cross_entropy = tf.reduce_mean(-tf.reduce_sum(ys * tf.log(predictions),            reduction_indices=[1]))train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)# compute the accuracycorrect_predictions = tf.equal(tf.argmax(predictions, 1), tf.argmax(ys, 1))accuracy = tf.reduce_mean(tf.cast(correct_predictions, tf.float32))with tf.Session() as sess: init = tf.global_variables_initializer() sess.run(init) for i in range(1000):  batch_xs, batch_ys = mnist.train.next_batch(100)  sess.run(train_step, feed_dict={   xs: batch_xs,   ys: batch_ys  })  if i % 50 == 0:   print(sess.run(accuracy, feed_dict={    xs: mnist.test.images,    ys: mnist.test.labels   }))

代碼解析

1. 讀取MNIST數據

mnist = input_data.read_data_sets('MNIST_data', one_hot=True)

2. 建立占位符

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

xs 代表圖片像素數據, 每張圖片(28×28)被展開成(1×784), 有多少圖片還未定, 所以shape為None×784.

ys 代表圖片標簽數據, 0-9十個數字被表示成One-hot形式, 即只有對應bit為1, 其余為0.

3. 建立模型

weights = tf.Variable(tf.random_normal([784, 10]))biases = tf.Variable(tf.zeros([1, 10]) + 0.1)outputs = tf.matmul(xs, weights) + biasespredictions = tf.nn.softmax(outputs)cross_entropy = tf.reduce_mean(-tf.reduce_sum(ys * tf.log(predictions),            reduction_indices=[1]))train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)

使用Softmax函數作為激活函數:

4. 計算正確率

correct_predictions = tf.equal(tf.argmax(predictions, 1), tf.argmax(ys, 1))accuracy = tf.reduce_mean(tf.cast(correct_predictions, tf.float32))

5. 使用模型

with tf.Session() as sess: init = tf.global_variables_initializer() sess.run(init) for i in range(1000):  batch_xs, batch_ys = mnist.train.next_batch(100)  sess.run(train_step, feed_dict={   xs: batch_xs,   ys: batch_ys  })  if i % 50 == 0:   print(sess.run(accuracy, feed_dict={    xs: mnist.test.images,    ys: mnist.test.labels   }))

運行結果

訓練1000個循環, 準確率在87%左右.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 扬中市| 桃园市| 西充县| 昆山市| 布尔津县| 桐庐县| 海林市| 枣强县| 遵义市| 宿松县| 师宗县| 安泽县| 邹城市| 德阳市| 沙坪坝区| 贵州省| 德清县| 育儿| 民勤县| 张掖市| 讷河市| 深泽县| 正安县| 香河县| 南丹县| 义乌市| 宁远县| 阳城县| 高州市| 金沙县| 县级市| 海城市| 长乐市| 奉贤区| 滨州市| 余庆县| 米泉市| 南京市| 枣阳市| 和静县| 尼玛县|