Keras框架作线性回归和非线性回归
来源:互联网 发布:大数据未来形势 编辑:程序博客网 时间:2024/04/30 09:22
线性回归
import kerasimport numpy as npimport matplotlib.pyplot as plt#按顺序构成的模型from keras.models import Sequential#Dense全连接层from keras.layers import Dense #构建一个顺序模型model=Sequential()#在模型中添加一个全连接层#units是输出维度,input_dim是输入维度(shift+两次tab查看函数参数)model.add(Dense(units=1,input_dim=1)) #编译模型model.compile(optimizer='sgd',loss='mse') #optimizer参数设置优化器,loss设置目标函数#训练模型for step in range(3001): #每次训练一个批次 cost=model.train_on_batch(x_data,y_data) #每500个batch打印一个cost值 if step%500==0: print('cost:',cost)#打印权值和偏置值W,b=model.layers[0].get_weights() #layers[0]只有一个网络层print('W:',W,'b:',b)#x_data输入网络中,得到预测值y_predy_pred=model.predict(x_data)plt.scatter(x_data,y_data)plt.plot(x_data,y_pred,'r-',lw=3)plt.show()
非线性回归(非线性激活函数)
#加激活函数的方法1:mode.add(Activation(''))from keras.optimizers import SGDfrom keras.layers import Dense,Activationimport numpy as npnp.random.seed(0)x_data=np.linspace(-0.5,0.5,200)noise=np.random.normal(0,0.02,x_data.shape)y_data=np.square(x_data)+noise#构建一个顺序模型model=Sequential()#在模型中添加一个全连接层#units是输出维度,input_dim是输入维度(shift+两次tab查看函数参数)#输入1个神经元,隐藏层10个神经元,输出层1个神经元model.add(Dense(units=10,input_dim=1))model.add(Activation('tanh')) #增加非线性激活函数model.add(Dense(units=1)) #默认连接上一层input_dim=10model.add(Activation('tanh'))#定义优化算法(修改学习率)defsgd=SGD(lr=0.3)#编译模型model.compile(optimizer=defsgd,loss='mse') #optimizer参数设置优化器,loss设置目标函数#训练模型for step in range(3001): #每次训练一个批次 cost=model.train_on_batch(x_data,y_data) #每500个batch打印一个cost值 if step%500==0: print('cost:',cost)#打印权值和偏置值W,b=model.layers[0].get_weights() #layers[0]只有一个网络层print('W:',W,'b:',b)#x_data输入网络中,得到预测值y_predy_pred=model.predict(x_data)plt.scatter(x_data,y_data)plt.plot(x_data,y_pred,'r-',lw=3)plt.show()
#加激活函数的方法2:model.add(Dense(units=10,input_dim=1,activation=' '))from keras.optimizers import SGDfrom keras.layers import Dense,Activation#构建一个顺序模型model=Sequential()#在模型中添加一个全连接层#units是输出维度,input_dim是输入维度(shift+两次tab查看函数参数)#输入1个神经元,隐藏层10个神经元,输出层1个神经元model.add(Dense(units=10,input_dim=1,activation='relu')) #增加非线性激活函数model.add(Dense(units=1,activation='relu')) #默认连接上一层input_dim=10#定义优化算法(修改学习率)defsgd=SGD(lr=0.3)#编译模型model.compile(optimizer=defsgd,loss='mse') #optimizer参数设置优化器,loss设置目标函数#训练模型for step in range(3001): #每次训练一个批次 cost=model.train_on_batch(x_data,y_data) #每500个batch打印一个cost值 if step%500==0: print('cost:',cost)#打印权值和偏置值W,b=model.layers[0].get_weights() #layers[0]只有一个网络层print('W:',W,'b:',b)#x_data输入网络中,得到预测值y_predy_pred=model.predict(x_data)plt.scatter(x_data,y_data)plt.plot(x_data,y_pred,'r-',lw=3)plt.show()
阅读全文
0 0
- Keras框架作线性回归和非线性回归
- 学习笔记一:线性回归和非线性回归
- keras线性回归拟合直线
- MATLAB用regress作多元非线性回归
- 7-3 7-4 正则化在线性回归和非线性回归
- 非线性回归
- 线性回归和logistic回归
- 线性回归和逻辑回归
- 线性回归和逻辑回归
- 线性回归和逻辑回归
- 线性回归和岭回归
- 线性回归和逻辑回归
- 线性回归,logistic回归和一般回归
- 线性回归,logistic回归和一般回归
- 线性回归,logistic回归和一般回归
- 线性回归,logistic回归和一般回归
- Keras上实现简单线性回归模型
- keras搬砖系列-线性回归
- Java单元测试(JUnit)
- Cron表达式说明
- 01背包 第k优解
- Problem C A君的旅行计划
- 绝对定位、相对定位
- Keras框架作线性回归和非线性回归
- SQL之locate函数
- Unreal教学(10)——放置Actor (Placing Actors)
- JAVA | 27
- numpy中std()和pandas中std()的区别
- NYOJ-304 节能(区间DP)
- Spring和Struts2并发的时候安全性问题和两者之间的区别
- Lua
- Problem D 小鑫a+b