47
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Keras】エラー 'str' object has no attribute 'decode'について

Last updated at Posted at 2020-12-22

2020年11月の中頃あたりから機械学習を行う際にTensorflowバックエンドのKerasを用いると掲題のエラーが発生するようになった。備忘録も兼ねて以下に記していく。

gazou.png

発生箇所

どうやら推論時に学習モデルをロードする際に当該のエラーが発生している。
モデルは.h5形式をロードしている。

KerasやTensorflowはインストール時にライブラリのバージョンを指定してインストールしているので
特に問題ないはずと考え、他の依存性のありそうなライブラリを調査した。
ちなみにKeras・Tensorflowは以下のバージョンを使用している際にエラーが発生している。

  • Keras:2.3.1
  • Tensorflow:1.14

上記が最新ではないため発生していることも考えられるが、今回は上記バージョンでの利用を前提とし、エラー解消に臨む。

対処

案の定モデルをロードする際に利用するライブラリのバージョンが問題だった。
h5pyというライブラリの最新バージョン3.1.0がインストールされており、それが利用されることでエラーが発生している。
Googlecolabなどで標準に使用されているのは現状では2.10.0である。

h5pyはKerasのインストール時に付随して最新版がインストールされてしまうため、Kerasより先にh5pyだけバージョン指定してインストールするか、h5pyをアンインストール後バージョンを指定して再インストールすればよい。

インストール

コマンドでのインストール
(以下ではpip3を用いているが環境によってコマンドは変更する)

# まずはバージョン確認
pip3 show h5py

# アンインストール
sudo pip3 uninstall h5py

# バージョン指定インストール
sudo pip3 install h5py==2.10.0

新規にインストールするのみの場合はKerasやTensorflowのインストールより先にh5pyを個別にバージョン指定してインストールしてやるのが良いだろう。

記事紹介

以下にて実機ロボットを使った機械学習を行っています。よろしければご参照ください。

LEGO Mindstorms×AI 機械学習その1 環境構築編
LEGO Mindstorms×AI 機械学習その2 線形回帰編
LEGO Mindstorms×AI 機械学習その3 分類編

47
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
47
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?