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

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

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

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

Python

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

Q&A

解決済

1回答

7703閲覧

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8e in position 153: invalid start byte

mus

総合スコア1

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

Python

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

0グッド

0クリップ

投稿2021/05/31 09:01

前提・実現したいこと

以下のサイトを参考に,TensorFlowを用いた画像判別装置を作っているのですが,
Anacondaのターミナルでretrain.pyを実行したところ,
タイトルのようなエラーメッセージが出ます.

参考サイト
https://asukiaaa.blogspot.com/2018/07/tensorflow.html
https://www.tensorflow.org/hub/tutorials/tf2_image_retraining

自分でも色々調べてはみたのですが,
解決策が思いつかなくなり質問させていただきました.

発生している問題

以前は最後まで回すことができていましたが,
2週間ほど前からUnicodeDecodeErrorが発生するようになりました.

問題の経緯は以下の通りです.

1. プログラムが学習後にUnicodeDecodeErrorを出すようになる

2. 1.のエラーが出た後,pcをシャットダウンさせ,翌日再びプログラムを回したところ,学習前に同様のエラーが出るようになる

3. pcをフォーマットしたところ,1.の状態に戻る

4. 数日間pcを起動させず,数日後に再び実行したところ,2.の状態になっており,現在に至る

エラーメッセージ

Traceback (most recent call last): File "retrain.py", line 1335, in <module> tf.app.run(main=main, argv=[sys.argv[0]] + unparsed) File "C:\Users\hl\anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\platform\app.py", line 40, in run _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef) File "C:\Users\hl\anaconda3\envs\tensorflow\lib\site-packages\absl\app.py", line 303, in run _run_main(main, args) File "C:\Users\hl\anaconda3\envs\tensorflow\lib\site-packages\absl\app.py", line 251, in _run_main sys.exit(main(argv)) File "retrain.py", line 1019, in main module_spec = hub.load_module_spec(FLAGS.tfhub_module) File "C:\Users\hl\anaconda3\envs\tensorflow\lib\site-packages\tensorflow_hub\module.py", line 65, in load_module_spec return registry.loader(path) File "C:\Users\hl\anaconda3\envs\tensorflow\lib\site-packages\tensorflow_hub\registry.py", line 51, in __call__ return impl(*args, **kwargs) File "C:\Users\hl\anaconda3\envs\tensorflow\lib\site-packages\tensorflow_hub\native_module.py", line 139, in __call__ module_def_proto = self._get_module_def_proto(path) File "C:\Users\hl\anaconda3\envs\tensorflow\lib\site-packages\tensorflow_hub\native_module.py", line 130, in _get_module_def_proto module_def_proto.ParseFromString(f.read()) File "C:\Users\hl\anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\lib\io\file_io.py", line 117, in read self._preread_check() File "C:\Users\hl\anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\lib\io\file_io.py", line 79, in _preread_check self._read_buf = _pywrap_file_io.BufferedInputStream( UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8e in position 153: invalid start byte

該当のソースコード

ソースコードは,

https://raw.githubusercontent.com/tensorflow/hub/52d5066e925d345fbd54ddf98b7cadf027b69d99/examples/image_retraining/retrain.py

からダウンロードしたものを一部書き換えました.
字数制限を超えるため,書き換えた箇所までのコードを載せます.

python

1from __future__ import absolute_import 2from __future__ import division 3from __future__ import print_function 4 5import argparse 6import collections 7from datetime import datetime 8import hashlib 9import os.path 10import random 11import re 12import sys 13 14import numpy as np 15import tensorflow as tf 16import tensorflow_hub as hub 17 18import tensorflow._api.v2.compat.v1 as tf

試したこと

・Anacondaを再インストールしましたが,エラー内容は変わりませんでした.

・別のpcで同様の環境を構築しプログラムを回しましたが,そちらも回る時と回らない時があります.

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

Windows 10
Anaconda 4.10.1
python 3.8.8
TensorFlow 2.5.0

pcはこのプログラムのためだけに使用しているものです.

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

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

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

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

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

guest

回答1

0

ベストアンサー

おはようございます。

問題文読ませていただきました。

ファイル(retrain.py)実行する際に、何かのファイルを読み込んでいる(引数にファイル名を渡して)と思うのですが、そのファイルの文字コードの認識違いにより、エラーが起きているようです。

retrain.pyのファイル読み込み箇所へ、以下の記事のように対処することは可能でしょうか?
https://insilico-notebook.com/python-unicodedecodeerror/
https://qiita.com/tonosamart/items/06047919121b82da6d0a

難しいならば、読み込みファイル自体をいい感じにする必要がありそうです。????‍♂️

<追記>
以下の手順にて実際に動きましたので、ご確認いただけますと幸いです。

  1. ターミナルを開く。
  2. cd desktopを実行。
  3. `curl -LO http://download.tensorflow.org/example_images/flower_photos.tgz

tar xzf flower_photos.tgz`を実行

  1. mkdir tensor-trainを実行
  2. mv ./flower_photos ./tensor-trainを実行
  3. cd tensor-trainを実行
  4. touch retrain.pyを実行
  5. retrain.pyファイルを開く。
  6. こちらのリンクの内容を貼り付ける。(https://raw.githubusercontent.com/tensorflow/hub/52d5066e925d345fbd54ddf98b7cadf027b69d99/examples/image_retraining/retrain.py)
  7. import tensorflow as tfimport tensorflow.compat.v1 as tfへ書き換える。
  8. /tmp/./tmp/へ書き換える。
  9. pip install tensorflowを実行
  10. pip install tensorflow_hubを実行
  11. python retrain.py --image_dir flower_photosを実行すると、output_graph.pbファイルが生成されました。

<参考>
https://asukiaaa.blogspot.com/2018/07/tensorflow.html
https://raw.githubusercontent.com/tensorflow/hub/52d5066e925d345fbd54ddf98b7cadf027b69d99/examples/image_retraining/retrain.py
https://qiita.com/titanium0715/items/7b52d817be2b97c14dab

投稿2021/05/31 22:30

編集2021/06/02 21:38
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

mus

2021/06/02 03:13

ご回答ありがとうございます。 教えていただいたリンクからエンコード指定を試しましたが、私自身pythonは初心者に近く、読み込みファイル名が分からない状態です。 エラー文から、file_io.pyの79行目で開いたファイルが文字コードの認識違いを起こしているという解釈で合っているでしょうか? また、file_io.pyの74~80行目は以下のようになっているのですが、ファイル名やコードの追加箇所など、何か分かることはありますでしょうか? def _preread_check(self): if not self._read_buf: if not self._read_check_passed: raise errors.PermissionDeniedError(None, None, "File isn't open for reading") self._read_buf = _pywrap_file_io.BufferedInputStream( compat.path_to_str(self.__name), 1024 * 512) 見当違いでしたら申し訳ありません。 よろしくお願いします。
退会済みユーザー

退会済みユーザー

2021/06/02 03:20

なるほど。 順番に問題確認していきましょう。 まず、 ・どのようなコマンドを打って、ファイル実行してエラーが出たのか教えていただけますか?(python ファイル名 など)
mus

2021/06/02 04:41

ありがとうございます。 anacondaに立てた仮想環境のターミナルで、   python retrain.py --image_dir flower_photos を実行し、エラーが出ました。 (flower_photosは質問文に添付したURLからDLした学習データです)
退会済みユーザー

退会済みユーザー

2021/06/02 21:39

自分の環境で動くことを確認しました。 回答の方へ<追記>しましたので、ご確認ください。????‍♂️
mus

2021/06/03 04:55

無事動かすことができました! 丁寧に教えていただき、大変ありがとうございます。
退会済みユーザー

退会済みユーザー

2021/06/03 05:11

お、ナイストライです。 いえいえ。 また困ったこととかありましたら、気軽にご相談ください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問