tensorflow 使用 4 非線性回歸

2022-07-17 00:09:19 字數 1956 閱讀 9964

# 輸入乙個 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 首先定義引數,一般使用...