質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.35%
Keras

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

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Model

MVCモデルの一部であるModelはアプリケーションで扱うデータとその動作を管理するために扱います。

Python

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

Q&A

解決済

1回答

1231閲覧

ニューラルネット,keras,predictの扱い

hate_tometo

総合スコア3

Keras

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

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Model

MVCモデルの一部であるModelはアプリケーションで扱うデータとその動作を管理するために扱います。

Python

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

0グッド

0クリップ

投稿2021/12/01 05:43

前提・実現したいこと

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

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

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

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

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

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

jbpb0

2021/12/01 06:42 編集

「sample」の次元は、「x_train」の次元と一致している必要があります print(x_train.shape) print(sample.shape) の結果を比べてみてください 次元が違いますよね 「x_train.shape」は「(データ数, 12)」ですから、「sample.shape」も「(データ数, 12)」じゃないとダメです (データ数の数値は「x_train」と「sample」で違っていい) 質問のコードのデータの場合は、「sample.shape」が「(1, 12)」となるようにします
jbpb0

2021/12/01 06:50

あと、「keras」と「tf.keras」を混ぜて使わない方がいいです 全部「tf.keras」に統一するなら、下記の変更をします import keras from keras import models from keras import optimizers from keras.datasets import fashion_mnist from keras import Sequential from keras.layers import Dense, Dropout from keras.models import Model from keras.layers import Input ↓ 変更 from tensorflow import keras from tensorflow.keras import models from tensorflow.keras import optimizers from tensorflow.keras.datasets import fashion_mnist from tensorflow.keras import Sequential from tensorflow.keras.layers import Dense, Dropout from tensorflow.keras.models import Model from tensorflow.keras.layers import Input 参考 https://dev.infohub.cc/use-tensorflow-keras/
hate_tometo

2021/12/02 05:41

ご回答ありがとうございます。 ご指摘いただいた、sampleの次元をreshapeを用いてx_trainと同じ次元に変更すること、tf.kerasに統一することの二つを修正したところ無事に実行できました。 初心者の私でも理解しやすい丁寧な解説で間違いに気づくことができました。 ご丁寧な解説、ご回答本当にありがとうございました。
guest

回答1

0

ベストアンサー

「sample」の次元は、「x_train」の次元と一致している必要があります

python

1print(x_train.shape) 2print(sample.shape)

の結果を比べてみてください
次元が違いますよね

「x_train.shape」は「(データ数, 12)」ですから、「sample.shape」も「(データ数, 12)」じゃないとダメです
(データ数の数値は「x_train」と「sample」で違っていい)

質問に掲載されてるコードのデータの場合は、「sample.shape」が「(1, 12)」となるようにします

投稿2021/12/02 06:42

jbpb0

総合スコア7653

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問