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

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

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

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

深層学習

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

Model

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

機械学習

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

Python

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

解決済

pythonのkerasのLSTMでInvalidArgumentErrorが起きる

monight
monight

総合スコア1

Keras

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

深層学習

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

Model

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

機械学習

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

Python

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

2回答

0評価

0クリップ

1296閲覧

投稿2021/03/25 18:21

前提・実現したいこと

pythonのkerasのlstmを使ってbitcoinの機械学習をしようとしています。
modelを作り訓練用のデータを読み込ませようとしたところ以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

InvalidArgumentError Traceback (most recent call last) <ipython-input-103-7934a75cb485> in <module> 1 history = lstm_model.fit(train_x, train_y, epochs=10, verbose=2, batch_size=batch_size, ----> 2 shuffle=False, validation_data=(test_x, test_y)) ~\Anaconda3\lib\site-packages\tensorflow\python\keras\engine\training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_batch_size, validation_freq, max_queue_size, workers, use_multiprocessing) 1098 _r=1): 1099 callbacks.on_train_batch_begin(step) -> 1100 tmp_logs = self.train_function(iterator) 1101 if data_handler.should_sync: 1102 context.async_wait() ~\Anaconda3\lib\site-packages\tensorflow\python\eager\def_function.py in __call__(self, *args, **kwds) 826 tracing_count = self.experimental_get_tracing_count() 827 with trace.Trace(self._name) as tm: --> 828 result = self._call(*args, **kwds) 829 compiler = "xla" if self._experimental_compile else "nonXla" 830 new_tracing_count = self.experimental_get_tracing_count() ~\Anaconda3\lib\site-packages\tensorflow\python\eager\def_function.py in _call(self, *args, **kwds) 853 # In this case we have created variables on the first call, so we run the 854 # defunned version which is guaranteed to never create variables. --> 855 return self._stateless_fn(*args, **kwds) # pylint: disable=not-callable 856 elif self._stateful_fn is not None: 857 # Release the lock early so that multiple threads can perform the call ~\Anaconda3\lib\site-packages\tensorflow\python\eager\function.py in __call__(self, *args, **kwargs) 2941 filtered_flat_args) = self._maybe_define_function(args, kwargs) 2942 return graph_function._call_flat( -> 2943 filtered_flat_args, captured_inputs=graph_function.captured_inputs) # pylint: disable=protected-access 2944 2945 @property ~\Anaconda3\lib\site-packages\tensorflow\python\eager\function.py in _call_flat(self, args, captured_inputs, cancellation_manager) 1917 # No tape is watching; skip to running the function. 1918 return self._build_call_outputs(self._inference_function.call( -> 1919 ctx, args, cancellation_manager=cancellation_manager)) 1920 forward_backward = self._select_forward_and_backward_functions( 1921 args, ~\Anaconda3\lib\site-packages\tensorflow\python\eager\function.py in call(self, ctx, args, cancellation_manager) 558 inputs=args, 559 attrs=attrs, --> 560 ctx=ctx) 561 else: 562 outputs = execute.execute_with_cancellation( ~\Anaconda3\lib\site-packages\tensorflow\python\eager\execute.py in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name) 58 ctx.ensure_initialized() 59 tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name, ---> 60 inputs, attrs, num_outputs) 61 except core._NotOkStatusException as e: 62 if name is not None: InvalidArgumentError: Specified a list with shape [32,7] from a tensor with shape [14,7] [[{{node TensorArrayUnstack/TensorListFromTensor}}]] [[sequential_17/lstm_28/PartitionedCall]] [Op:__inference_train_function_43207] Function call stack: train_function -> train_function -> train_function

該当のソースコード

python

import numpy as np import pandas as pd import quandl import matplotlib.pyplot as plt from sklearn.preprocessing import MinMaxScaler from sklearn.model_selection import train_test_split # put your api key quandl.ApiConfig.api_key = "api_key" df = quandl.get("BITFINEX/BTCJPY") # dataframeを正規化 mm = MinMaxScaler() df_min_max = pd.DataFrame(mm.fit_transform(df), index=df.index, columns=df.columns) #train_dfとtest_dfに分ける train_df, test_df = train_test_split(df_min_max, test_size=0.2, shuffle=False) #説明変数xに過去6日間のデータ、目的変数yに翌日のlastのデータを追加したリストを作る interval = 6 def make_data(data): x = [] y = [] last = list(data["Last"]) for i in range(len(last)): if i < interval: continue y.append(last[i]) xa = [] for p in range(interval): d = i + p - interval xb = [] for feature in data: features = data[feature] xb.append(features[d]) xa.append(xb) x.append(xa) return (x, y) train_x, train_y = make_data(train_df) test_x, test_y = make_data(test_df) train_x = np.array(train_x) test_x = np.array(test_x) print(train_x.shape) #(846, 6, 7)となる print(test_x.shape) #(207, 6, 7)となる train_y = np.array(train_y) test_y = np.array(test_y) print(train_y.shape) #(846,)となる print(test_y.shape) #(207,)となる #lstm_modelを作る batch_size=32 learning_rate=0.001 from keras.models import Sequential from keras.layers import LSTM from keras.layers import Dense, Dropout from keras import optimizers lstm_model = Sequential() lstm_model.add(LSTM(100, batch_input_shape=(batch_size, 6, 7), dropout=0.0, recurrent_dropout=0.0, stateful=True, return_sequences=True, kernel_initializer='random_uniform')) lstm_model.add(Dropout(0.4)) lstm_model.add(LSTM(60, dropout=0.0)) lstm_model.add(Dropout(0.4)) lstm_model.add(Dense(20,activation='relu')) lstm_model.add(Dense(1,activation='sigmoid')) optimizer = optimizers.RMSprop(lr=learning_rate) lstm_model.compile(loss='mean_squared_error', optimizer=optimizer) #lstm_modelをfitする history = lstm_model.fit(train_x, train_y, epochs=10, verbose=2, batch_size=batch_size, shuffle=False, validation_data=(test_x, test_y)) #ここでエラー

試したこと

batch_input_shapeの値に問題があると思い様々な数値(14など)に変えたのですがうまくいきません。

補足情報(FW/ツールのバージョンなど)

python3
参考にさせていただいたサイト
https://qiita.com/satken2/items/5d95f1580f65bed50add

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Keras

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

深層学習

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

Model

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

機械学習

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

Python

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