kerasでNeural Networkを作成した際のfit関数について質問させていただきます。
やりたいことはtextファイルを読み込んでNeural Networkを学習させたいと考えています。
参考にしているサイトはこちらです。
Kaggleの練習問題(Regression)を解いてKagglerになる
サイト上のデータを変えてやってみたところ以下のエラーがでました。
X_train
が定義されていないと出ていたので、
global変数などにしてみたのですが上手くいきませんでした。
分かる方がいましたら、回答いただけると助かります。
ファイル等は以下に記載しています。
※ご回答いただいた内容に質問させていただくこともあるかと思いますので、
※よろしければご返信いただければと思います。
error
1The above exception was the direct cause of the following exception: 2 3Traceback (most recent call last): 4 File "neural_network.py", line 47, in <module> 5 main() 6 File "neural_network.py", line 44, in main 7 reg_d1.fit(X_train, y_train) 8 File "/root/anaconda3/lib/python3.7/site-packages/sklearn/model_selection/_search.py", line 688, in fit 9 self._run_search(evaluate_candidates) 10 File "/root/anaconda3/lib/python3.7/site-packages/sklearn/model_selection/_search.py", line 1149, in _run_search 11 evaluate_candidates(ParameterGrid(self.param_grid)) 12 File "/root/anaconda3/lib/python3.7/site-packages/sklearn/model_selection/_search.py", line 667, in evaluate_candidates 13 cv.split(X, y, groups))) 14 File "/root/anaconda3/lib/python3.7/site-packages/joblib/parallel.py", line 1016, in __call__ 15 self.retrieve() 16 File "/root/anaconda3/lib/python3.7/site-packages/joblib/parallel.py", line 908, in retrieve 17 self._output.extend(job.get(timeout=self.timeout)) 18 File "/root/anaconda3/lib/python3.7/site-packages/joblib/_parallel_backends.py", line 554, in wrap_future_result 19 return future.result(timeout=timeout) 20 File "/root/anaconda3/lib/python3.7/concurrent/futures/_base.py", line 432, in result 21 return self.__get_result() 22 File "/root/anaconda3/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result 23 raise self._exception 24NameError: name 'X_train' is not defined
# input_x_train.txt BED610249 0.968437 1 0.888889 0.810852 0.0602143 BED610250 1 0.990897 0.740741 0.813708 0.0602143 BED610249 0.968437 1 0.962963 0.810852 0.0602143 BED610249 0.968437 1 0.37037 0.810852 0.0602143 BED611364 0.858587 0.0486021 0 0.989455 0.152962 BED611368 0.832594 0 0.222222 0.810633 0.0602143 BED610249 0.968437 1 0.407407 0.810852 0.0602143 BED610247 0 0.995449 0.333333 0.585237 0.0602143 BED610249 0.968437 1 0.555556 0.810852 0.0602143 BED611367 0.853945 0.00894018 0.518519 1 0.152962 # input_y_train.txt BED610249 33 BED610250 25 BED610249 50 BED610249 1 BED611364 1 BED611368 8 BED610249 2 BED610247 39 BED610249 6 BED611367 34
python
1from keras.models import Sequential 2from keras.layers import Dense 3from keras.wrappers.scikit_learn import KerasRegressor 4from sklearn.model_selection import GridSearchCV 5import numpy as np 6 7def read_file(filename): 8 ds_tmp = [] 9 with open(filename, 'r') as f: 10 for i in f: 11 txt = i.split() 12 del txt[0] 13 txt = [ float(s) for s in txt ] 14 ds_tmp.append(txt) 15 ds = np.array(ds_tmp) 16 return ds 17 18def create_model(optimizer='adam'): 19 model = Sequential() 20 model.add(Dense(X_train.shape[1], input_dim=X_train.shape[1], 21 kernel_initializer='normal', activation='relu')) 22 model.add(Dense(16, kernel_initializer='normal', activation='relu')) 23 model.add(Dense(1, kernel_initializer='normal')) 24 25 model.compile(loss='mean_squared_error', optimizer=optimizer) 26 return model 27 28def main(): 29 model = KerasRegressor(build_fn=create_model, verbose=0) 30 # defin the grid search parameters 31 optimizer = ['SGD', 'Adam'] 32 batch_size = [10, 30, 50] 33 epochs = [10, 50, 100] 34 param_grid = dict(optimizer=optimizer, batch_size=batch_size, epochs=epochs) 35 reg_d1 = GridSearchCV(estimator=model, param_grid=param_grid, n_jobs=-1) 36 37 38 39 x_train_data = read_file("input_x_train.txt") 40 y_train_data = read_file("input_y_train.txt") 41 X_train = x_train_data[:, :5] 42 y_train = y_train_data[:, 5:]/50.0 43 #print(X_train) 44 reg_d1.fit(X_train, y_train) 45 46if __name__ == '__main__': 47 main()
回答1件
あなたの回答
tips
プレビュー