import keras import numpy as np import matplotlib.pyplot as plt from keras.models import Sequential from keras.optimizers import SGD from keras.layers import Dense,Activation # 再-0.5和+0.5之间生成200个数据 log_flag=False; 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 #plt.scatter(x_data,y_data) #plt.show() #构建一个顺序模型 model=Sequential() #在模型中添加一个全连接层 隐藏层变成10 model.add(Dense(units=10,input_dim=1)) model.add(Activation('tanh')) model.add(Dense(units=1)) model.add(Activation('tanh')) #变异 #自己定义优化算法 sgd=SGD(lr=0.3) #sgd 随机梯度下降 #mes 均方误差 model.compile(optimizer=sgd,loss='mse') for step in range(3001): # 每次训练一个批次 print('setp',step) cost=model.train_on_batch(x_data,y_data) if step % 500 == 0: print("cost:",cost) W,b=model.layers[0].get_weights() print('W',W,'b',b) #x_data 输入网络中 得到预测值 y_pred y_pred=model.predict(x_data) #显示随机点 plt.scatter(x_data,y_data) plt.plot(x_data,y_pred,'r-',lw=3) #显示预测结果 plt.show()
kreas 非线性回归
猜你喜欢
转载自my.oschina.net/payzheng/blog/1631212
今日推荐
周排行