2017-10-15 7 views
0

私はkerasの初心者です。私が線形回帰を実行しているとき、私は多くのことに悩まされています。私は以下のソースコードを入力しました:ケラスを使って線形回帰を実行すると、損失が発生します

from keras.layers import Dense,Activation 
from keras.models import Sequential 
import numpy as np 
model = Sequential() 
model.add(Dense(1,input_shape=(1,))) 
model.add(Activation('linear')) 
model.compile(loss='mse',optimizer='sgd',metrics=['mse']) 
x = np.linspace(1,100,1e3) 
y = 3*x + 1 + np.random.normal(size=x.shape) 
model.fit(x,y,batch_size=100) 

そして、損失の出力はnanです。私はトレーニングデータを変更したとき しかし、対応するコードは次のとおりです。

x = np.linspace(1,10,1e3) 

すべてが大丈夫です、私は3.0とこれが起こる理由1. 誰もが知っている近似Bを近似するwを得ることができます最終的にはこれ?前もって感謝します。

答えて

0

問題は、1から100までの値を持つ1000個の数値を与えることです。予測値(x * w)を作成するために、これらの数値にランダム値wを掛け合わせたものを想像してください。 MSE機能数字があふれているので、infからnanになります。

良い方法は、平均0.0と低い分散を使用してデータを保持することである(例えば1)簡単な修正が、このような100でデータを分割するであろう。この場合

x = np.linspace(1,100,1e3)/100 
関連する問題