自己搭建神經網路求解非線性回歸係數
**
#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.newaxis] #x_data:200行1列 數值在-0.5到0.5之間
noise = np.random.normal(0,0.02,x_data.shape)#noise :200行1列
y_data = np.square(x_data) + noise #y_data 200行1列
#定義兩個placeholder
x = tf.placeholder(tf.float32, [none,1]) #x:任意行 1列
y = tf.placeholder(tf.float32, [none,1]) #y:任意行 1列
#輸入的是乙個數 輸出的也是乙個數 因此輸入層和輸出層都是乙個神經元
#定義乙個神經網路中間層 可以是任意個神經元 例如10個
#定義神經網路中間層
weights_l1 = tf.variable(tf.random_normal([1,10])) #1行10列
biase_l1 = tf.variable(tf.zeros([1,10])) # 1,10
wx_plus_b_l1 = tf.matmul(x, weights_l1)+biase_l1 #x被正式賦值之後是200行1列 tf.matmul(x, weights_l1)結果是200行10列 而biase_l1是1行10列 那麼這倆怎麼相加呢 在python裡面 200行10列的a向量+1行10列的b向量, 相當於給a向量每行加了b向量
l1 = tf.nn.tanh(wx_plus_b_l1) #使用雙曲正切函式作為啟用函式
#定義神經網路輸出層
weights_l2 = tf.variable(tf.random_normal([10,1]))
biase_l2 = tf.variable(tf.zeros([1,1]))
wx_plus_b_l2 = tf.matmul(l1,weights_l2) + biase_l2
prediction = tf.nn.tanh(wx_plus_b_l2)
#二次代價函式
loss = tf.reduce_mean(tf.square(y - prediction))
#使用梯度下降法
train_step = tf.train.gradientdescentoptimizer(0.1).minimize(loss)
with tf.session() as sess:
#變數初始化
sess.run(tf.global_variables_initializer())
for _ in range(2000):
sess.run(train_step, feed_dict=)
#迭代2000次之後所有的權重值都求出來了
#獲得**值
prediction_value = sess.run(prediction,feed_dict=)
#畫圖plt.figure()
plt.scatter(x_data,y_data) #畫出散點圖
plt.plot(x_data,prediction_value,'r-',lw=5) #畫出折線圖
plt.show()
分類: 深度學習
自己搭建神經網路求解非線性回歸係數
**
#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.newaxis] #x_data:200行1列 數值在-0.5到0.5之間
noise = np.random.normal(0,0.02,x_data.shape)#noise :200行1列
y_data = np.square(x_data) + noise #y_data 200行1列
#定義兩個placeholder
x = tf.placeholder(tf.float32, [none,1]) #x:任意行 1列
y = tf.placeholder(tf.float32, [none,1]) #y:任意行 1列
#輸入的是乙個數 輸出的也是乙個數 因此輸入層和輸出層都是乙個神經元
#定義乙個神經網路中間層 可以是任意個神經元 例如10個
#定義神經網路中間層
weights_l1 = tf.variable(tf.random_normal([1,10])) #1行10列
biase_l1 = tf.variable(tf.zeros([1,10])) # 1,10
wx_plus_b_l1 = tf.matmul(x, weights_l1)+biase_l1 #x被正式賦值之後是200行1列 tf.matmul(x, weights_l1)結果是200行10列 而biase_l1是1行10列 那麼這倆怎麼相加呢 在python裡面 200行10列的a向量+1行10列的b向量, 相當於給a向量每行加了b向量
l1 = tf.nn.tanh(wx_plus_b_l1) #使用雙曲正切函式作為啟用函式
#定義神經網路輸出層
weights_l2 = tf.variable(tf.random_normal([10,1]))
biase_l2 = tf.variable(tf.zeros([1,1]))
wx_plus_b_l2 = tf.matmul(l1,weights_l2) + biase_l2
prediction = tf.nn.tanh(wx_plus_b_l2)
#二次代價函式
loss = tf.reduce_mean(tf.square(y - prediction))
#使用梯度下降法
train_step = tf.train.gradientdescentoptimizer(0.1).minimize(loss)
with tf.session() as sess:
#變數初始化
sess.run(tf.global_variables_initializer())
for _ in range(2000):
sess.run(train_step, feed_dict=)
#迭代2000次之後所有的權重值都求出來了
#獲得**值
prediction_value = sess.run(prediction,feed_dict=)
#畫圖plt.figure()
plt.scatter(x_data,y_data) #畫出散點圖
plt.plot(x_data,prediction_value,'r-',lw=5) #畫出折線圖
plt.show()
tensorflow教程學習三深入MNIST
載入資料 from tensorflow.examples.tutorials.mnist import input data mnist input data.read data sets mnist data one hot true 我們使用interactivesession類可以更加靈活地...
莫煩tensorflow系列教程學習
1.普通機器學習 函式係數 y 0.1x 0.3 coding gbk import tensorflow as tf import numpy as np 生成資料,y 0.1x 0.3 x data np.random rand 100 astype np.float32 y data x da...
安裝TensorFlow教程
1.安裝anaconda 2.建立乙個conda環境,命名為tensorflow conda create n tensorflow3.用以下命令進入conda環境 source activate tensorflow tensorflow 進入tensorflow後的顯示符4.安裝tensorfl...