tensorflow2 线性优化

140 阅读1分钟

tensorflow2学习

线性框架 f(x) = ax+b

import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize']=(10,10)
plt.rcParams['image.interpolation'] = 'nearest'
plt.rcParams['image.cmap'] = 'gray'
num_points = 1000
vectors_set = []
#基于函数f(x)=0.1x+0.3构建数据
for i in range(num_points):
    x1 = np.random.normal(0.0,0.55)
    y1 = x1*0.1+0.3+np.random.normal(0.0,0.03)
    vectors_set.append([x1,y1])
x_data = [v[0] for v in vectors_set]
y_data = [v[1] for v in vectors_set]

#定义模型,使用一层全连接,输入为一维,输出为一维
#自行初始化w,b 构建wx+b
model = tf.keras.Sequential(
    tf.keras.layers.Dense(units=1,input_shape=(1,))
)
#使用adam(梯度下降作为优化函数),mse(均方差)作为损失函数
model.compile(optimizer='adam',loss='mse')
model.fit(x_data,y_data,epochs=1000)#迭代1000次
w,b = model.layers[0].get_weights()#得到权重
print(w,b)#w趋近于0.1,b趋近于0.3
[[0.09715978]] [0.2983961]