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

在google-cloud-ml作业中加载numpy数组,第1张

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

首先,您需要在GCS上复制/存储数据(使用

gsutil
),并确保您的训练脚本可以访问该存储桶。最简单的方法是将阵列复制到与数据相同的存储桶中,因为您可能已经将该存储桶配置为具有读取访问权限。如果存储桶与您的培训工作在同一项目中,并且您遵循了这些说明(尤其是
gcloud beta ml init-project
),则应进行设置。如果数据将在另一个存储桶中,请参阅以下说明。

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

file_io
模块的示例:

from StringIO import StringIOimport tensorflow as tfimport numpy as npfrom tensorflow.python.lib.io import file_io# Create a variable initialized to the value of a serialized numpy arrayf = 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
未完全实现所需的seek函数,因此必须将文件读取为字符串并使用
numpy.load

奖励:如果有用,您可以使用该

file_io
模块将numpy数组直接存储到GCS ,例如:

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

对于Python 3,请使用

from io import StringIO
代替
from StringIO import StringIO



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5616739.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存