当前位置:  开发笔记 > 编程语言 > 正文

在google-cloud-ml作业中加载numpy数组

如何解决《在google-cloud-ml作业中加载numpy数组》经验,为你挑选了1个好方法。

在我想要启动的模型中,我有一些必须用特定值初始化的变量.

我目前将这些变量存储到numpy数组中,但我不知道如何调整我的代码以使其适用于google-cloud-ml作业.

目前我初始化我的变量如下:

my_variable = variables.model_variable('my_variable', shape=None, dtype=tf.float32, initializer=np.load('datasets/real/my_variable.npy'))

有人能帮我吗 ?



1> rhaertel80..:

首先,您需要在GCS上复制/存储数据(例如,使用gsutil),并确保您的培训脚本可以访问该存储桶.最简单的方法是将数组复制到与数据相同的存储桶中,因为您可能已经将该存储桶配置为读访问权限.如果铲斗与您的训练作业位于同一项目中并且您遵循了这些说明(特别是gcloud beta ml init-project),则应进行设置.如果数据将在另一个存储桶中,请参阅这些说明.

然后,您将需要使用能够从GCS加载数据的库.Tensorflow包含一个可以执行此操作的模块,尽管您可以自由使用任何可以从GCS读取的客户端库.以下是使用TensorFlow file_io模块的示例:

from StringIO import StringIO
import tensorflow as tf
import numpy as np
from tensorflow.python.lib.io import file_io

# Create a variable initialized to the value of a serialized numpy array
f = StringIO(file_io.read_file_to_string('gs://my-bucket/123.npy'))
my_variable = tf.Variable(initial_value=np.load(f), name='my_variable')

注意,我们必须将文件读入字符串并使用StringIO,因为file_io.FileIO没有完全实现所需的搜索功能numpy.load.

额外奖励:如果它有用,您可以使用该file_io模块直接将numpy数组存储到GCS ,例如:

np.save(file_io.FileIO('gs://my-bucket/123', 'w'), np.array([[1,2,3], [4,5,6]]))

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有