C2_W1_Lab01_Neurons_and_Layers

tensorflow中利用激活函数linear建立模型与线性回归模型进行对比

import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf

X_train=np.array([[1.0],[2.0]],dtype=np.float32)
Y_train=np.array([[300.0],[500.0]],dtype=np.float32)

# 定义一个只有一个神经元的层
linear_layer=tf.keras.layers.Dense(units=1,activation='linear')
# 触发权重和偏置的初始化,权重随机初始化为小数字,偏差默认初始化为0
linear_layer(X_train[0].reshape(1,1))

w,b=linear_layer.get_weights()
# 手动设置权重和偏置的值
set_w=np.array([[200]])
set_b=np.array([100])
linear_layer.set_weights([set_w,set_b])

alin=np.dot(set_w,X_train[0].reshape(1,1))+set_b

prediction_tf=linear_layer(X_train)
prediction_np=np.dot(X_train,set_w)+set_b

fig,(ax1,ax2)=plt.subplots(1,2,figsize=(16,4))

# 第一个图
ax1.scatter(X_train,Y_train,marker='x',c='r',label='Data points')
ax1.plot(X_train,prediction_tf,label='model output')
ax1.text(1.6,350,r"y=$200 x + 100$", fontsize=14)
ax1.legend()
ax1.set_title("Tensorflow prediction")
ax1.set_ylabel('Price (in 1000s of dollars)', fontsize=14)
ax1.set_xlabel('Size (1000 sqft)', fontsize=14)
# 第二个图
ax2.scatter(X_train,Y_train,marker='x',c='r',label='Data points')
ax2.plot(X_train,prediction_np,label='model output')
ax2.text(1.6,350,r"y=$200 x + 100$", fontsize=14)
ax2.legend()
ax2.set_title("Numpy prediction")
ax2.set_ylabel('Price (in 1000s of dollars)', fontsize=14)
ax2.set_xlabel('Size (1000 sqft)', fontsize=14)

plt.show()


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值