gsバケットからnumpy.npzファイルをロードする必要があるgoogle-cloud-mlジョブがあります。gsから.npyファイルをロードする方法についてこの例に従いましたが、.npzファイルが圧縮されているため、機能しませんでした。
これが私のコードです:
from StringIO import StringIO
import tensorflow as tf
import numpy as np
from tensorflow.python.lib.io import file_io
f = StringIO(file_io.read_file_to_string('gs://my-bucket/data.npz'))
data = np.load(f)
そして、ここにエラーメッセージがあります:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa2 in position 10: invalid start byte
どうやら、データのエンコードはstr
正しくありませんが、これに対処する方法がわかりません。
誰か助けてもらえますか?ありがとう!
バイナリフラグをTrue
に設定する必要があることがわかりましたfile_io.read_file_to_string()
。
動作するコードは次のとおりです。
from io import BytesIO
import tensorflow as tf
import numpy as np
from tensorflow.python.lib.io import file_io
f = BytesIO(file_io.read_file_to_string('gs://my-bucket/data.npz', binary_mode=True))
data = np.load(f)
そして、これは圧縮された.npzファイルと圧縮されていない.npzファイルの両方で機能します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加