# 輸入乙個 x 會計算出 y 值 y 是**值,如果與 真的 y 值(y_data)接近就成功了import tensorflow as tf
import numpy as np
# py 的畫圖工具
import matplotlib.pyplot as plt
# 用 numpy 生成個 200 個屬性點 從 -0.5 到 0.5 間平均生成 200 個點
#x_data = np.linspace(-0.5, 0.5, 200) # 這只是生成了一維的陣列
# 用下邊這句可以生成二維陣列
x_data = np.linspace(-0.5, 0.5, 200)[:, np.newaxis]
# 生成隨機值,和 x_data 的形狀是一樣的 ( 噪點 )
noise = np.random.normal(0, 0.02, x_data.shape)
# x_data 的平方+隨機數
y_data = np.square( x_data ) + noise
# 定義二個佔位符
x = tf.placeholder( tf.float32, [none, 1] ) # [none, 1] 行不定,列只有一列
y = tf.placeholder( tf.float32, [none, 1] )
# 構建神經網路中間層 一行十列
weights_l1 = tf.variable( tf.random_normal([1, 10]))
biases_l1 = tf.variable( tf.zeros([1, 10]) )
# 求出訊號的總和 矩陣相乘,
wx_plus_b_l1 = tf.matmul(x, weights_l1) + biases_l1
# 中間層的輸出
l1 = tf.nn.tanh( wx_plus_b_l1 )
# 輸出層 十行一列
weights_l2 = tf.variable( tf.random.normal([10, 1]))
biases_l2 = tf.variable( tf.zeros([1, 1]) )
# 求出訊號的總和 矩陣相乘,
wx_plus_b_l2 = tf.matmul(l1, weights_l2) + biases_l2
# 得出最後的**結果
pred = tf.nn.tanh( wx_plus_b_l2 )
# 二次代價函式
loss = tf.reduce_mean( tf.square(y - pred) )
# 梯度下降法的優化器 最小化代價函式
train = tf.train.gradientdescentoptimizer( 0.2 ).minimize( loss )
with tf.session() as sess:
# 初始化變數
sess.run( tf.global_variables_initializer() )
# 訓練 2000 次
for _ in range( 2000 ):
sess.run( train, feed_dict= )
# 得到**值
value = sess.run( pred, feed_dict= )
# 用畫圖形式展現
tensorflow基礎使用4
非線性回歸 coding utf 8 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt 使用numpy生成200個隨機點 x data np.linspace 0.5,0.5,200 np.newax...
Tensorflow 非線形回歸
import tensorflow as tf import numpy as np import matplotlib.pyplot as plt 使用numpy來生成兩百個隨機點,範圍在 0.5到0.5之間,均勻分布 np.newaxis 插入新的維度 x data np.linspace 0....
tensorflow 綜合學習系列例項之線性回歸
tf是現在比較流行的深度學習框架之一,從今天開始我會把tf由簡入深到進行講解,不對的地方還請大家諒解,因為tf的版本現在更新的速度很快,不同的版本對應的api也是有所區別的,所以需要找到對應的版本,後面我所講解的例項都是基於1.2版本 在使用tf的一般正常幾個核心步驟如下 1 首先定義引數,一般使用...