tensorflow學習筆記(三) 多層感知器

2021-08-21 04:49:09 字數 1966 閱讀 7938

與softmax regression不同之處在於:

1、加入一層隱藏層;

2、訓練時,採用dropout(隨機失活)策略

隨機失活,其實就是在訓練的過程中,隨機的將一些神經元的響應進行抑制,不讓它啟用,使得訓練過程中,每一次訓練僅僅是網路中的部分神經元,最後訓練好的神經網路相當於是多個神經網路的整合,能夠很好降低過擬合的風險。

from tensorflow.examples.tutorials.mnist import input_data

import tensorflow as tf

tf.device('/gpu:0')

# 1、匯入資料

mnist = input_data.read_data_sets("mnist_data/", one_hot = true)

sess = tf.interactivesession()

# 2、定義模型結構

# 定義三層神經網路:輸入層、隱藏層和輸出層,神經元個數

in_units = 784

h1_units = 300

out_units = 10

# 定義隱藏層的權重和偏置

w1 = tf.variable(tf.truncated_normal([in_units, h1_units], stddev = 0.1))

b1 = tf.variable(tf.zeros([h1_units]))

# 定義輸出層的權重和偏置

w2 = tf.variable(tf.zeros([h1_units, out_units]))

b2 = tf.variable(tf.zeros([out_units]))

# 資料輸入介面

x = tf.placeholder(tf.float32, [none, in_units])

# dropout比例

keep_prob = tf.placeholder(tf.float32)

hidden1 = tf.nn.relu(tf.matmul(x, w1) + b1)

hidden1_drop = tf.nn.dropout(hidden1, keep_prob)

y = tf.nn.softmax(tf.matmul(hidden1_drop, w2) + b2)

y_ = tf.placeholder(tf.float32, [none, 10])

# 3、定義損失函式及優化方法

cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices = [1]))

train_step = tf.train.adagradoptimizer(0.3).minimize(cross_entropy)

tf.global_variables_initializer().run()

# 4、訓練

for i in range(3000):

batch_xs, batch_ys = mnist.train.next_batch(100)

train_step.run()

correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))

accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))

print(accuracy.eval())

結果如下:

0.979

0.9796

0.9795

0.9791

0.9782

0.9794

0.9788

0.9788

0.9794

0.9788

0.9794

0.9796

最後能夠達到97.96%的準確率。

tensorflow學習筆記三

分布式tensorflow就是多台伺服器參加乙個tensorflow圖的分布式執行,分布式我感覺就是原來在一台計算機上面執行好幾個程序這些程序互動是由os控制的,而分布式就是把這些程序放在了不同的機器上面執行,他們之間的互動是由分布式框架控制的,實際分布式的核心或者說基本點還是執行的程序。一提到分布...

tensorflow學習筆記(三)

1.是否列印裝置分配日誌 sess tf.session config tf.configproto log device placement true 2.如果指定的裝置不存在,是否允許tf自動分配裝置 sess tf.session config tf.configproto allow sof...

tensorflow學習筆記

tensorflow安裝可以直接通過命令列或者原始碼安裝,在此介紹tensorflow8命令列安裝如下 安裝tensorflow sudo pip install upgrade 另外,解除安裝tensorflow命令為 sudo pip uninstall tensorflow tensorflo...