Keras實現只有乙個神經元的線性回歸演算法

2021-10-08 19:06:03 字數 1488 閱讀 2298

# 執行緒回歸例項教程

# 人為的構造一組由y=0.5x+2加上一些雜訊而生成的資料

# 資料量為200個,其中160個作為train set,後40個作為test set

import numpy as np

import matplotlib.pyplot as plt

from keras.models import sequential

from keras.layers import dense

from keras.optimizers import sgd

# 構造輸入資料x和y

x = np.linspace(-2, 6, 200)

np.random.shuffle(x)

y = 0.5*x+2+0.15*np.random.randn(200,)

# plot data

plt.scatter(x, y)

plt.show()

#前160條資料作為訓練集,160-200條資料作為測試集

x_train, y_train = x[:160], y[:160]

x_test, y_test = x[160:],y[160:]

# 資料準備完成,接下來進入到模型構建————————————————

model = sequential() # 堆疊模型,神經網路一層一層的堆疊起來

model.add(dense(input_dim = 1, units = 1)) # 輸入和輸出的維度都為1

# 制定模型中的損失函式loss function(mse最小二成誤差),優化器sgd,隨機梯度下降

model.compile(loss='mse', optimizer=sgd(lr=0.01, momentum=0.9, nesterov=true))

# training

print('training')

for step in range(100):

cost = model.train_on_batch(x_train, y_train)

if step % 20 ==0:

print('train cost:', cost)

print('\ntesting------------')

loss_and_metrics = model.evaluate(x_test, y_test, batch_size=40)

print('test cost:', cost)

w, b = model.layers[0].get_weights()

print('weights= ', w, '\nbiases=', b)

# 對新的測試點進行**

y_pred = model.predict(x_test)

plt.scatter(x_test, y_test)

plt.plot(x_test, y_pred)

plt.show()

乙個神經元的神經網路

coding utf 8 filename 乙個神經元的神經網路 software pycharm author li xu time 2020 1 15 15 45 編寫乙個神經元 import numpy as np defsigmod x 定義乙個啟用函式 param x 引數x return...

單個人工神經元的實現

人工神經元 神經元是構成神經網路的最基礎單元 網路結構 人工神經網路由神經元模型構成,這種由許多神經元組成的資訊處理網路具有並行分布結構。輸入資料採用二維陣列data儲存,輸入4組輸入資料 0,0 0,1 1,0 1,1 計算人工神經元的程式的處理步驟如下 單個人工神經元對於輸入訊號計算輸出值的計算...

lambda 實現只有乙個抽象方法的介面

使用lambda表示式,實現只有乙個抽象方法的介面。package rxxj public inte ce myinter package rxxj public class test public static void main string args 匿名內部類實現函式式介面 package ...