TensorFlow實現線性回歸

2022-06-08 03:21:10 字數 2233 閱讀 4492

import tensorflow as tf

import numpy as np

import matplotlib.pyplot as plt

通過隨機生成的x求出對應的y值,可以自己指定求出y值的方法,主要是使x和y有對應的關係

# 使用mumpy生成200個隨機點

x_data = np.linspace(-0.5, 0.5, 200)[:, np.newaxis] # 使得維度為[200,1]

noise = np.random.normal(0, 0.02, x_data.shape) # 維度為[200, 1]高斯分布的資料

y_data = np.square(x_data) + noise

# 定義權重和偏置第一層

w1 = tf.variable(tf.random.normal([1, 10],dtype=x_data.dtype))

b1 = tf.variable(tf.zeros([1, 10], dtype=x_data.dtype))

# 定義輸出

w2 = tf.variable(tf.random.normal([10, 1], dtype=x_data.dtype))

b2 = tf.variable(tf.zeros([1, 1], dtype=x_data.dtype))

可以試著改變一下超引數,對比不同的引數訓練的結果是什麼樣的

# 定義超引數

epochs = 1000 # 訓練次數

lr = 0.1

train_loss_results = # 訓練損失結果列表,用來畫圖展示

for epoch in range(epochs):

with tf.gradienttape() as tape: # 記錄梯度資訊

y1 = tf.matmul(x_data, w1) + b1

l1 = tf.nn.tanh(y1) # 使用tanh啟用函式,使得結果都為正數

y2 = tf.matmul(l1, w2) + b2

l2 = tf.nn.tanh(y2) # 使用tanh啟用函式

# 使用均方誤差求損失值

loss = tf.reduce_mean(tf.square(y_data - l2))

# 計算梯度下降的方向

TensorFlow 實現Softmax 回歸模型

importtensorflowastf importnumpyasnp importtensorflow.examples.tutorials.mnist.input dataasinput data mnist input data.read data sets mnist data one h...

tensorflow實現softmax回歸函式

softmax函式可以把多個值歸一化到 0,1 區間中,以實現分類等問題 輸出 5 dtype float32,numpy array 0.1738882 0.7230672,0.8248408,0.8263163 1.5385914 1.3104331 0.91867334 1.5094105,0...

TensorFlow 線性回歸實現

usr bin env python3 coding utf 8 import numpy as np import tensorflow as tf import matplotlib.pyplot as plt if name main 給引數賦值 learning rate 0.01 trai...