Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
7
Help us understand the problem. What is going on with this article?
@Hiroki-Fujimoto

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

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 分類編

7
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Hiroki-Fujimoto
AI初心者ががちゃがちゃやってみた記事を投稿していく!
afrel
明るい未来づくりに向けて教育支援サービスを提供します。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
7
Help us understand the problem. What is going on with this article?