通過《tensorflow:實戰google深度學習框架》中的例項:神經網路解決二分類問題,熟悉完整的tensorflow程式來訓練神經網路
import tensorflow as tf
from numpy.random import randomstate
batch_size = 8
w1 = tf.variable(tf.random_normal([2, 3], stddev=1, seed=1))
w2 = tf.variable(tf.random_normal([3, 1], stddev=1, seed=1))
x = tf.placeholder(tf.float32, shape=(none, 2), name="x-input")
y_ = tf.placeholder(tf.float32, shape=(none, 1), name="y-input")
a = tf.matmul(x, w1)
y = tf.matmul(a, w2)
cross_entropy = -tf.reduce_mean(
y_ * tf.log(tf.clip_by_value(y, 1e-10, 1.0))
)train_step = tf.train.adamoptimizer(0.001).minimize(cross_entropy)
rdm = randomstate(1)
dataset_size = 128
x = rdm.rand(dataset_size, 2)
y = [[int(x1 + x2 < 1)] for (x1, x2) in x]
with tf.session() as sess:
init_op = tf.global_variables_initializer()
sess.run(init_op)
print(sess.run(w1))
print(sess.run(w2))
steps = 5000
for i in range(steps):
start = (i * batch_size) % dataset_size
end = min(start + batch_size, dataset_size)
sess.run(train_step, feed_dict=)
if i % 1000 == 0:
total_cross_entropy = sess.run(cross_entropy, feed_dict=)
print("after %d training step(s), cross entropy on all data is %g" % (i, total_cross_entropy))
print(sess.run(w1))
print(sess.run(w2))
下面的程式實現了訓練神經網路的全部過程。從這段程式可以總結出訓練神經網路的過程可以分為以下3個步驟:
定義神經網路的結構和前向傳播的輸出結果。
定義損失函式以及選擇反向傳播優化的演算法。
生成會話(tf.session)並且在訓練資料上反覆執行反向傳播優化演算法
無論神經網路的結構如何變化,這3個步驟是不變的。
tensorflow實戰 實現簡單的神經網路
from tensorflow.examples.tutorials.mnist import input data import tensorflow as tf mnist input data.read data sets mnist data one hot true sess tf.int...
TensorFlow入門02 簡單的神經網路
在本文中會先介紹一些概念,然後給出乙個簡單的完整神經網路樣例程式。首先啟用函式可以解決線性不可分問題。讀者可以訪問通過網頁瀏覽器就可以訓練簡單神經網路並實現視覺化過程。截圖如下所示 神經網路模型的效果以及優化的目標是通過損失函式 loss function 來定義的。分類問題 如手寫數字識別 如何判...
TensorFlow實現高階的卷積神經網路
本人使用的資料集是cifar 10。這是乙個經典的資料集,許多 也都是在這個資料集上進行訓練。使用的卷積神經網路是根據alex描述的cuda convnet模型修改得來。在這個神經網路中,我使用了一些新的技巧 1 對weights進行了l2的正則化 2 將影象進行翻轉 隨機剪下等資料增強,製造了更多...