AppleSilicon M1 でTensorFlowのLSTMを実行するとエラーが発生する。

2022-05-07

 結論から申しますと、こちらの問題はまだ解決されていないようです。こちらのissueに上がっていました。
ただ、このまま諦めるわけにはいかないので、代替案を検討します。

 調べたところ世の中にはGoogle Colaboratoryという素晴らしいサービスが存在していました。こちらを使用したところLSTMもしっかり動きました。

 少々手間ですが、問題が解決するまではしばらくこちらのサービスにお世話になりそうです。
使ってみたところ、めちゃめちゃ便利だったので今後もこちらのサービスを活用していこうと思います👍

 ちなみに今回はこちらの動画に従って、LSTMによる株価予測をしてみました。
こちらですが、「past_60_days = data_training.tail(60)」のところで下記のエラーが発生します。

numpy.ndarray' object has no attribute 'tail

 data_trainingをscaler.fit_transform(data_training)によって正規化した際にDataframe型がnumpy.ndarryに変換されてしまうため発生しているようです。そのため以下のようにdata_trainingを再定義することでエラーを回避できます。

data_training = data[data['Date']<'2019-01-01'].copy()
data_test = data[data['Date']>='2019-01-01'].copy()
past_60_days = data_training.tail(60)

 ちなみにJR東日本(9020)で動かしてみたところ、結果は以下のようになりました。
※データの期間は持ち合わせているデータに合わせて変更しています。

epoch=50
epoch=150


 傾向は捉えることができているので、上昇下降程度の予測くらいには役立ちそうです。
 コピペしただけなので、少しずつ理解を深めながら改善を進めていきたいと思います。縦軸の値がおかしいのでその部分も要確認ですね💦