2016-04-12 6 views
3

初めてKeramモデル用のハイパーパラメータを最適化するためにspearmintを使用していますが、初めて正常に動作します。しかし、2番目のジョブ以降は、常に次のエラーをスローします。KeraとSpearmintとの統合に関する問題

<type 'exceptions.TypeError'>, TypeError('An update must have the same type as the original shared variable (shared_var=<TensorType(float32, matrix)>, shared_var.type=TensorType(float32, matrix), update_val=Elemwise{add,no_inplace}.0, update_val.type=TensorType(float64, matrix)).', 'If the difference is related to the broadcast pattern, you can call the tensor.unbroadcast(var, axis_to_unbroadcast[, ...]) function to remove broadcastable dimensions.'), <traceback object at 0x18a5c5710>) 

列車データとテストデータのあらかじめ作成されたnumpy配列を読み込むために、次のコードを使用しています。次のパラメータは、最適化Pythonスクリプトによって渡されます。しかし、スペアミントなしで実行すると、一連のパラメータが正常に動作します。私はスペアミントで設定された

def load_train_data(arg_type, params=None): 

    X_train1 = pickle.load(open(arg_type+"_train1","rb")) 

    X_train2 = pickle.load(open(arg_type+"_train2","rb")) 

    Y_train = pickle.load(open(arg_type+"_train_labels","rb")) 



    model=combined_model(X_train1,X_train2,Y_train,params) 



    X_test1 = pickle.load(open(arg_type+"_test1","rb")) 

    X_test2 = pickle.load(open(arg_type+"_test2","rb")) 

    Y_test = pickle.load(open(arg_type+"_test_labels","rb")) 



    loss = model.evaluate({'input1': X_test1,'input2': X_test2,'output':Y_test},batch_size=450) 

    return loss 
+0

例外はどの行で発生しますか? – roadrunner66

+0

この問題は、combined_model()でmodel.compileが model.compile( 'adam'、{'output': 'categorical_crossentropy'})と呼ばれるときに発生します。 –

答えて

0

変数は、彼らが(明示的にfloatを使用して、基本的なPythonのデータ型に変換する必要がありました)、INT()。これはこの問題の解決に役立ちました。

関連する問題