国产探花免费观看_亚洲丰满少妇自慰呻吟_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%左右.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 恩施市| 阿克苏市| 延庆县| 恩施市| 台前县| 舒城县| 垦利县| 巴林左旗| 富川| 惠水县| 化德县| 茌平县| 新营市| 临湘市| 辽中县| 吉首市| 绥滨县| 乡宁县| 惠水县| 阳信县| 富裕县| 临汾市| 曲靖市| 扶绥县| 金湖县| 灵川县| 霍州市| 开封县| 岳阳市| 泰宁县| 内黄县| 乐安县| 安岳县| 丰都县| 江都市| 汝阳县| 永昌县| 林州市| 松潘县| 泽库县| 广饶县|