2017-10-31 6 views
1

私は線形回帰モデル(線形回帰出力を持つCNN)を訓練しました。私の入力は画像であり、出力は確率である。私は今、別のイメージを(私のテストセットとは違う)撮り、それを私のネットワークに押し込んで確率を得ることを望みます。ケラで線形回帰予測を見つける

私は私のモデル、重みと画像をロードし、4Dテンソルことなどのような予測を実行するために再構築:

json_file = open('/home/model.json', 'r') 
loaded_model_json = json_file.read() 
json_file.close() 

loaded_model = model_from_json(loaded_model_json) 
loaded_model.load_weights("/home/weights.h5") 
loaded_model.compile(loss='mean_squared_error', optimizer=OPTIMISER, metrics=['mean_absolute_error']) 

img = (ndimage.imread(img).astype(float) - pixel_depth/2)/pixel_depth 
img = img.reshape(1, 128, 128, 1).astype('float32') 
out = loaded_model.predict(img) 

私は7.35の値を取得する - 私のネットワークがテストセットに実行されました0.4の領域で(これは私が必要とするところでは問題ありません)。私は〜1の値を期待していた。正しいルーチンを使っていますか?

バグを探してどれくらい戻ってくるかわかりません。

EDIT:画像のヒストグラムプロット。

Training set images hist Test set images hist

+0

トレーニング中に画像を正規化しましたか? –

+0

@MarcinMożejkoはい – ashley

+0

予測中 - 同じ関数を使って正規化しましたか? –

答えて

0

私は私が必要とする正確に何を取得していますが判明。この予測は、障害(3D環境内の物理的な障害)ではない障害のために、ネットワークが可能になったと考えられる方向の変化に基づいています。最初は、同様の予測値を見つけようとしていると思っていましたが、これはより良いことが判明しました。

学習:これが構造化されている方法は、ケラを用いた線形予測を見つけるために正しい方法です。

関連する問題