使用tensorflow从谷歌云存储加载.npy文件

时间:2018-03-06 10:39:20

标签: python-3.x numpy tensorflow google-cloud-ml

我试图将.npy文件从我的Google云存储中加载到我的模型中我按照此示例Load numpy array in google-cloud-ml job 但是我得到了这个错误

  

' UTF-8'编解码器不能解码字节0x93   位置0:无效的起始字节

你可以帮帮我吗? 这是代码中的示例

这里我读了

文件
with file_io.FileIO(metadata_filename, 'r') as f:
    self._metadata = [line.strip().split('|') for line in f]

在这里我开始处理它

if self._offset >= len(self._metadata):
    self._offset = 0
    random.shuffle(self._metadata)
meta = self._metadata[self._offset]
self._offset += 1
text = meta[3]
    if self._cmudict and random.random() < _p_cmudict:
        text = ' '.join([self._maybe_get_arpabet(word) for word in text.split(' ')])

    input_data = np.asarray(text_to_sequence(text, self._cleaner_names), dtype=np.int32)
    f = StringIO(file_io.read_file_to_string(
        os.path.join('gs://path',meta[0]))
    linear_target = tf.Variable(initial_value=np.load(f), name='linear_target')
    s = StringIO(file_io.read_file_to_string(
        os.path.join('gs://path',meta[1])))
    mel_target = tf.Variable(initial_value=np.load(s), name='mel_target')
    return (input_data, mel_target, linear_target, len(linear_target))

,这是来自数据sample

的示例

1 个答案:

答案 0 :(得分:2)

这可能是因为您的文件不包含utf-8编码文本。

可能,您可能需要使用mode ='rb'将file_io.FileIO实例初始化为二进制文件,或者在调用read_file_to_string时设置binary_mode = True。

这将导致读取的数据作为字节序列而不是字符串返回。