🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

962閲覧

kerasのfit関数で引数が読み込まれない

yone_yone

総合スコア28

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/11/08 14:22

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()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2019/11/10 10:36

「model = KerasRegressor(build_fn=create_model, verbose=0)」の文ではエラーは出ていませんか?
yone_yone

2019/11/11 01:36

meg_さん、 指摘された文ではエラーは出ていないようです。
guest

回答1

0

自己解決

以下のコード修正でエラーが解消されました。
DataFrame型にしたことと、再度global変数を使ってみると解消されました。
自分なりに原因の解明はできていないですが、
おそらく、データの使い方が悪かった可能性が高いです。

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 6import pandas as pd 7 8def read_file(filename): 9 ds_tmp = [] 10 with open(filename, 'r') as f: 11 for i in f: 12 txt = i.split() 13 del txt[0] 14 txt = [ float(s) for s in txt ] 15 ds_tmp.append(txt) 16 ds = np.array(ds_tmp) 17 return ds 18 19def create_model(optimizer='adam'): 20 21 model = Sequential() 22 model.add(Dense(X_train.shape[1], input_dim=X_train.shape[1], 23 kernel_initializer='normal', activation='relu')) 24 model.add(Dense(16, kernel_initializer='normal', activation='relu')) 25 model.add(Dense(1, kernel_initializer='normal')) 26 27 model.compile(loss='mean_squared_error', optimizer=optimizer) 28 return model 29 30def main(): 31 global X_train 32 global y_train 33 x_train_data = read_file("input_x_train.txt") 34 y_train_data = read_file("input_y_train.txt") 35 X_train = x_train_data 36 y_train = y_train_data/50.0 37 #print(X_train) 38 X_train = pd.DataFrame(X_train) 39 y_train = pd.DataFrame(y_train) 40 #print(X_train) 41 42 model = KerasRegressor(build_fn=create_model, verbose=0) 43 # defin the grid search parameters 44 optimizer = ['SGD', 'Adam'] 45 batch_size = [10, 30, 50] 46 epochs = [10, 50, 100] 47 param_grid = dict(optimizer=optimizer, batch_size=batch_size, epochs=epochs) 48 reg_d1 = GridSearchCV(estimator=model, param_grid=param_grid, n_jobs=-1) 49 50 nn = reg_d1.fit(X_train, y_train) 51 print(nn) 52 53if __name__ == '__main__': 54 main() 55

投稿2019/11/12 07:13

yone_yone

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問