按照《程序員的AI書》中的示例,照貓畫虎,可運(yùn)行出錯(cuò)。問題出在model.fit,說是參數(shù)類型不對(duì)。示例中輸入的是兩個(gè)列表:
x_array = [1, 2, 3, 10, 2000, -2, -10, -100, -5,-20]
y= [1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0]
檢查了一下,應(yīng)該是軟件的版本不一致造成的,目前的版本model.fit可以接收numpy.ndarray類型。
將上面的代碼修為:
x_array = np.array( [1, 2, 3, 10, 2000, -2, -10, -100, -5,-20])
y= np.array([1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0])
程序可以通過了。
完整的代碼如下:
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
import numpy as np
model = Sequential()
model.add(Dense(units=8,activation='relu',input_dim=1))
model.add(Dense(units=1,activation='sigmoid'))
model.compile(loss='mean_squared_error',optimizer='sgd')
x_array = np.array( [1, 2, 3, 10, 2000, -2, -10, -100, -5,-20])
y= np.array([1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0])
model.fit(x_array,y,epochs=10,batch_size=4)
test_x=np.array([30,40,-20,-60])
test_y=model.predict(test_x)
for i in range(0,len(test_x)):
print('input {} => predict:{}'.format(test_x[i],test_y[i]))