Tensorflow初體驗

Tensorflow 是很是重視結構的, 咱們得創建好了神經網絡的結構, 才能將數字放進去, 運行這個結構。

今天學習一下Tensorflow 的一個簡單的例子python

一、建立數據

首先,須要加載tensorflow numpy 兩個模塊,而且使用numpy來建立數據。git

import tensorflow as tf
import numpy as np

# create data
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data*0.1 + 0.3
二、搭建模型

使用tf.Variable來建立描述y的參數。github

Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
biases = tf.Variable(tf.zeros([1]))

y = Weights*x_data + biases
三、計算偏差

計算一下實際的值和原來的偏差。網絡

loss = tf.reduce_mean(tf.square(y-y_data))
四、傳播偏差
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
五、訓練

到目前爲止, 咱們只是創建了神經網絡的結構, 尚未使用這個結構. 在使用這個結構以前, 咱們必須先初始化全部以前定義的Variable, 因此接下來這段很重要!dom

# init = tf.initialize_all_variables() # tf 立刻就要廢棄這種寫法
init = tf.global_variables_initializer()  # 替換成這樣就好

接着,咱們再建立會話 Session函數

sess = tf.Session()
sess.run(init)          # Very important

for step in range(201):
    sess.run(train)
    if step % 20 == 0:
        print(step, sess.run(Weights), sess.run(biases))
六、運行代碼

跑了一下代碼,截圖以下

咱們能夠看到,這個一次函數的值Weightsbiases原來是兩個隨機的值,經過200次的學習,一次一次更加趨近於原來的值,也就是0.10.3學習

完整代碼以下:spa

from __future__ import print_function
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
import tensorflow as tf
import numpy as np

# create data
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data*0.1 + 0.3

### create tensorflow structure start ###
Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
biases = tf.Variable(tf.zeros([1]))

y = Weights*x_data + biases

loss = tf.reduce_mean(tf.square(y-y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
### create tensorflow structure end ###

sess = tf.Session()
# tf.initialize_all_variables() no long valid from
# 2017-03-02 if using tensorflow >= 0.12
if int((tf.__version__).split('.')[1]) < 12 and int((tf.__version__).split('.')[0]) < 1:
    init = tf.initialize_all_variables()
else:
    init = tf.global_variables_initializer()
sess.run(init)

for step in range(201):
    sess.run(train)
    if step % 20 == 0:
        print(step, sess.run(Weights), sess.run(biases))

感謝

莫煩PYTHONcode

相關文章
相關標籤/搜索