2017-06-27 16 views
0

コードです:Keras NN回帰モデルのモデル出力を表示する方法は?ここで

import numpy as np 
import pandas as pd 
from keras import backend as K 
from keras.models import Sequential 
from keras.layers import Dense 
from keras.wrappers.scikit_learn import KerasRegressor 
from sklearn.model_selection import cross_val_score 
from sklearn.model_selection import KFold 
from sklearn.preprocessing import StandardScaler 
from sklearn.pipeline import Pipeline 


dataframe=pd.read_csv('C:/Users/joe/Desktop/BIS/bon.csv', header=0) 
dataset=dataframe.values 

#splitting into input and output variables 
X=dataset[:,0:11] 
Y=dataset[:,11] 


#defining baseline model 
def baseline_model(): 
    #creating model 
    model=Sequential() 
    model.add(Dense(11, input_dim=11, kernel_initializer='normal', activation='relu')) 
    model.add(Dense(1,kernel_initializer='normal')) 
    #compiling model 
    model.compile(loss='mean_squared_error', optimizer='adam') 
    #testing model 
    return model 

#fixing random seed 
seed=7 
np.random.seed(seed) 

estimator = KerasRegressor(build_fn=baseline_model, nb_epoch=100, batch_size=5, verbose=0) 
kfold=KFold(n_splits=10, random_state=seed) 
results=cross_val_score(estimator, X, Y, cv=kfold) 
print("Results: %.2f (%.2f) MSE" % (results.mean(), results.std())) 

私はそれを行うのですかどのように、モデルの予測値に(Yに格納されている)真の値を比較したいですか?

def baseline modelブロックのreturn modelの直前で、 print(model.layers [-1]。出力)を試しました。しかし、これは私が出力として得るものです:これは単なるモデル構造(グラフ)ではなく、実際にモデルを実行しているセッションですので、あなたがmodel.layers[-1].outputの値を取得されていません

Tensor("dense_42/BiasAdd:0", shape=(?, 1), dtype=float32) 
Tensor("dense_44/BiasAdd:0", shape=(?, 1), dtype=float32) 
Tensor("dense_46/BiasAdd:0", shape=(?, 1), dtype=float32) 
Tensor("dense_48/BiasAdd:0", shape=(?, 1), dtype=float32) 
Tensor("dense_50/BiasAdd:0", shape=(?, 1), dtype=float32) 
Tensor("dense_52/BiasAdd:0", shape=(?, 1), dtype=float32) 
Tensor("dense_54/BiasAdd:0", shape=(?, 1), dtype=float32) 
Tensor("dense_56/BiasAdd:0", shape=(?, 1), dtype=float32) 
Tensor("dense_58/BiasAdd:0", shape=(?, 1), dtype=float32) 
Tensor("dense_60/BiasAdd:0", shape=(?, 1), dtype=float32) 
Results: 0.09 (0.09) MSE 

答えて

0

理由があります。

あなたは単に予測を取得する代わりにcross_val_scoreの機能cross_val_predictを使用することができ、私は思う:

http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.cross_val_predict.html#sklearn.model_selection.cross_val_predict

+0

おかげで、魅力のように働きました! 個々のレイヤ出力を取得するにはどうすればよいですか? – user8244

+0

また、予測に近い値段の人を見せるために、予測に対応する「真の値」をどのように得ることができますか? – user8244

+0

真の値はYです –

関連する問題