小编Nic*_*reg的帖子

当Json请求包含"_bytes"或"b64"时,google cloud ml-engine会做什么?

谷歌云文档(请参阅预测输入中的二进制数据)指出:

必须将编码的字符串格式化为JSON对象,并使用名为b64的单个键.以下Python示例使用base64库对原始JPEG数据的缓冲区进行编码以生成实例:

{"image_bytes":{"b64": base64.b64encode(jpeg_data)}}
Run Code Online (Sandbox Code Playgroud)

在TensorFlow模型代码中,您必须为输入和输出张量命名别名,以便它们以'_bytes'结尾.

我想了解更多有关此过程如何在Google云端运行的信息.

  • ml-engine是否会自动将"b64"字符串之后的任何内容解码为字节数据?

  • 当请求具有此嵌套结构时,它是否仅将"b64"部分传递给服务输入函数并删除"image_bytes"键?

  • 每个请求是单独传递给服务输入函数还是已经批处理?

  • 我们是否在服务输入函数返回的ServingInputReceiver中定义输入输出别名?

我发现无法创建服务输入函数,该函数使用此嵌套结构来定义要素占位符.我只在我的中使用"b64"而且我不确定gcloud ml-engine在接收请求时会做什么.

另外,当在本地使用预测时gcloud ml-engine local predict,发送具有嵌套结构的请求失败,(意外的密钥image_bytes,因为它没有在服务输入函数中定义).但是在预测使用时gcloud ml-engine predict,即使服务输入函数不包含对"image_bytes"的引用,使用嵌套结构发送请求也能正常工作.当忽略"image_bytes"并传入"b64"时,gcloud预测也有效.

服务输入功能的示例

def serving_input_fn():
    feature_placeholders = {'b64': tf.placeholder(dtype=tf.string,
                                                  shape=[None],
                                                  name='source')}
    single_image = tf.decode_raw(feature_placeholders['b64'], tf.float32)
    inputs = {'image': single_image}
    return tf.estimator.export.ServingInputReceiver(inputs, feature_placeholders)
Run Code Online (Sandbox Code Playgroud)

我使用图像给出了示例,但我假设同样适用于作为字节和base64编码发送的所有类型的数据.

有很多stackoverflow问题,其中包含对包含"_bytes"信息片段的需求的引用,但我觉得如果有人可以详细解释一下这些内容会有什么用,那么我就不会如此受欢迎格式化请求时错过.

Stackoverflow关于此主题的问题

gcloud tensorflow-serving google-cloud-ml tensorflow-estimator

9
推荐指数
1
解决办法
943
查看次数

如何在ML引擎培训工作中找出SIGSEGV错误的原因?

我正在ML引擎上训练自定义tensorflow估计器,并遇到以下错误:

The replica master 0 exited with a non-zero status of 11(SIGSEGV)
Run Code Online (Sandbox Code Playgroud)

唯一的其他错误日志是:

Command '['python3', '-m', 'train_model.train', ... ']' returned non-zero exit status -11
Run Code Online (Sandbox Code Playgroud)

不再有追溯,因此我只需要继续执行此“无效的内存引用或分段错误代码 ”。

此SIGSEGV错误并不总是发生。一些培训作业运行没有问题,另一些则在4小时后抛出此错误,而另一些在15分钟后抛出。

我已经对估算器培训代码的各个部分进行了尝试,尝试通过尝试和尝试错误的方法找到原因,但是没有成功。

我以为11代码可以对应于该错误代码在谷歌的API,发现许多人都经历过 OutOfSequence,并OutOfRange在估计使用自定义指标时错误EvalSpec,但我不认为这是在这里造成的错误,因为我使用tf.metric

我正在使用BASIC扩展层,并查看CPU利用率,它从未超过80%,而内存利用率图显示了大约25%。

我正在缓存tensorflow数据集,但是当不缓存数据集时也会收到此错误。在运行train_and_evaluate方法以及方法时都会发生错误train

关于如何在培训工作中查找此崩溃的路线原因,有什么建议吗?或导致崩溃的一些常见原因是什么?解决方案是否只是使用更大的内存计算机?

python segmentation-fault tensorflow tensorflow-estimator

5
推荐指数
0
解决办法
138
查看次数