前提・実現したいこと
python、ニューラルネット初心者です。
python3を用いてニューラルネットを構築しています。
CSVデータに保存したデータを使って、学習を行い未知のデータに対して10段階の分類を行うことが最終目標です。
今回はkerasのpredictを実行できなかったため、質問させていただきました。
エラー文の解決方法を教えていただきたいです。
よろしくお願いいたします。
回答にあたって、必要な情報が欠けていましたら補足いたしますので、教えていただけますと幸いです。
発生している問題・エラーメッセージ
predict=model.predict(sample, batch_size=None, verbose=0, steps=None) TypeError: predict() missing 1 required positional argument: 'x'
該当のソースコード
python3
1from __future__ import print_function 2 3import pandas as pd 4from pandas import Series,DataFrame 5 6from sklearn import svm 7from sklearn.model_selection import train_test_split 8from sklearn.metrics import accuracy_score 9 10import numpy as np 11import matplotlib.pyplot as plt 12 13import tensorflow as tf 14 15import keras 16from keras import models 17from keras import optimizers 18from keras.datasets import fashion_mnist 19from keras import Sequential 20from keras.layers import Dense, Dropout 21 22from keras.models import Model 23from keras.layers import Input 24 25 26#CSVファイルの読み込み 27data_set = pd.read_csv("NN_testdata_2.csv",sep=",",header=0) 28 29#説明変数(データセットの入力) 30x = DataFrame(data_set.drop("result",axis=1)) 31 32#目的変数(得点の10段階評価) 33y = DataFrame(data_set["result"]) 34 35#説明変数・目的変数をそれぞれ訓練データ・テストデータに分割 36x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.05) 37 38 39#データの整形 40x_train = x_train.astype(np.float) 41x_test = x_test.astype(np.float) 42 43y_train = tf.keras.utils.to_categorical(y_train,10) 44y_test = tf.keras.utils.to_categorical(y_test,10) 45 46 47#ニューラルネットワークの実装① 48model = tf.keras.Sequential() 49 50model.add(Dense(50, activation='relu', input_shape=(12,))) 51model.add(Dropout(0.2)) 52 53model.add(Dense(50, activation='relu', input_shape=(12,))) 54model.add(Dropout(0.2)) 55 56model.add(Dense(50, activation='relu', input_shape=(12,))) 57model.add(Dropout(0.2)) 58 59model.add(Dense(10, activation='softmax')) 60 61model.summary() 62print("\n") 63 64#ニューラルネットワークの実装② 65model.compile(loss='mean_squared_error',optimizer=tf.keras.optimizers.RMSprop( 66 learning_rate=0.001, rho=0.9, momentum=0.0, epsilon=1e-07, centered=False, 67 name='RMSprop'),metrics=['accuracy']) 68 69#ニューラルネットワークの学習 70history = model.fit(x_train, y_train,batch_size=20,epochs=10,verbose=1,validation_data=(x_test, y_test)) 71 72#ニューラルネットワークの推論 73score = model.evaluate(x_test,y_test,verbose=1) 74print("\n") 75print("Test loss:",score[0]) 76print("Test accuracy:",score[1]) 77 78###################################該当箇所############################################ 79#10段階評価したいチームのデータを入力 80sample = np.array([7.9, 0.35, 0.46, 5, 0.078, 15, 37, 0.9973, 3.35, 0.86, 12.8, 21]) 81print("\n") 82print("--サンプルチームの得点--") 83 84print(sample) 85 86predict=model.predict(sample, batch_size=None, verbose=0, steps=None) 87##################################################################################### 88print("\n") 89print("--予測値--") 90print(predict) 91print("\n")
試したこと
引数に関するエラーであることから公式のドキュメントに乗っ取り、配列による入力を実行しましたがこのエラー文が出ました。
本来はkerasのmodel.predict_classes()を使いたかったのですが、バージョンの兼ね合いにより使えなくなってしまいました。←同じような出力が期待できる手法がありましたら共有していただきたいです。
入力層の個数とサンプルデータの個数は一致しています。(12種類)
補足情報(FW/ツールのバージョンなど)
python3
tensorflow 2.6.2
keras 2.6.0
回答1件
あなたの回答
tips
プレビュー