标签: google-cloud-ml

提交培训作业后,"没有此类文件或目录"错误

我执行:

gcloud beta ml jobs submit training ${JOB_NAME} --config config.yaml

大约5分钟后,作业错误出现此错误:

Traceback (most recent call last): 
File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main "__main__", fname, loader, pkg_name) 
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code exec code in run_globals 
File "/root/.local/lib/python2.7/site-packages/trainer/task.py", line 232, in <module> tf.app.run() 
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 30, in run sys.exit(main(sys.argv[:1] + flags_passthrough)) 
File "/root/.local/lib/python2.7/site-packages/trainer/task.py", line 228, in main run_training() 
File "/root/.local/lib/python2.7/site-packages/trainer/task.py", line 129, in run_training data_sets = input_data.read_data_sets(FLAGS.train_dir, FLAGS.fake_data) 
File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py", line 212, in read_data_sets with open(local_file, 'rb') as f: …
Run Code Online (Sandbox Code Playgroud)

google-cloud-ml

5
推荐指数
1
解决办法
1630
查看次数

Keras模型到Tensorflow输入b64编码数据而不是numpy ml-engine预言

我正在尝试将keras模型转换为用于Google Cloud的ml-engine预测的模型。我有一个预先训练的分类器,将numpy数组作为输入。我发送给model.predict的正常工作数据称为input_data。

我将其转换为base 64,并json使用以下几行将其转储到文件中:

data = {}
data['image_bytes'] = [{'b64':base64.b64encode(input_data.tostring())}]

with open('weights/keras/example.json', 'w') as outfile:
    json.dump(data, outfile)
Run Code Online (Sandbox Code Playgroud)

现在,我尝试从现有模型创建TF模型:

from keras.models import model_from_json
import tensorflow as tf
from keras import backend as K
from tensorflow.python.saved_model import builder as saved_model_builder
from tensorflow.python.saved_model import utils
from tensorflow.python.saved_model import tag_constants, signature_constants
from tensorflow.python.saved_model.signature_def_utils_impl import build_signature_def, predict_signature_def
init = tf.global_variables_initializer()
with tf.Session() as sess:
    K.set_session(sess)
    sess.run(init)
    print("Keras model & weights loading...")
    K.set_learning_phase(0)
    with open(json_file_path, 'r') as file_handle:
        model = …
Run Code Online (Sandbox Code Playgroud)

keras tensorflow tensorflow-serving google-cloud-ml

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

Google Machine Learning Engine Python 3

Google机器学习引擎的最新运行时版本1.4支持Python 3.5:

https://cloud.google.com/ml-engine/docs/runtime-version-list

如何在ML引擎中使用Python 3.5训练模型?

谢谢

google-cloud-ml

5
推荐指数
1
解决办法
984
查看次数

在用于服务模型的Tensorflow中,服务输入函数应该做什么

因此,我一直在努力了解在Tensorflow中为训练模型导出训练模型时,serve_input_fn()的主要任务是什么.网上有一些例子可以解释它,但是我在为自己定义它时遇到了问题.

我试图解决的问题是回归问题,我有29个输入和一个输出.是否有用于为其创建相应服务输入功能的模板?如果我使用一类分类问题该怎么办?我的服务输入功能是否需要更改或者我可以使用相同的功能吗?

最后,我是否总是需要提供输入功能,还是仅当我使用tf.estimator导出我的模型时?

python tensorflow tensorflow-serving google-cloud-ml

5
推荐指数
1
解决办法
3580
查看次数

在错误的python版本上运行的ML引擎批量预测

在此处输入图片说明

所以我在ML 3.5中向ML引擎注册了一个tensorflow模型,我想使用它运行批处理预测作业。我的API请求正文如下所示:

{
  "versionName": "XXXXX/v8_0QSZ",
  "dataFormat": "JSON",
  "inputPaths": [
    "XXXXX"
  ],
  "outputPath": "XXXXXX",
  "region": "us-east1",
  "runtimeVersion": "1.12",
  "accelerator": {
    "count": "1",
    "type": "NVIDIA_TESLA_P100"
  }
}
Run Code Online (Sandbox Code Playgroud)

然后,批处理预测作业运行并返回“作业成功完成。”,但是,它是完全不成功的,并且始终对每个输入引发以下错误:

Exception during running the graph: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above. [[node convolution_layer/conv1d/conv1d/Conv2D (defined at /usr/local/lib/python2.7/dist-packages/google/cloud/ml/prediction/frameworks/tf_prediction_lib.py:210) = Conv2D[T=DT_FLOAT, data_format="NCHW", dilations=[1, 1, 1, 1], padding="VALID", strides=[1, 1, 1, 1], use_cudnn_on_gpu=true, _device="/job:localhost/replica:0/task:0/device:GPU:0"](convolution_layer/conv1d/conv1d/Conv2D-0-TransposeNHWCToNCHW-LayoutOptimizer, convolution_layer/conv1d/conv1d/ExpandDims_1)]] [[{{node Cast_6/_495}} = …
Run Code Online (Sandbox Code Playgroud)

python google-cloud-platform tensorflow google-cloud-ml

5
推荐指数
1
解决办法
137
查看次数

在投放时在Keras模型中包括BEAM预处理图

简短问题:

由于Tensorflow朝着Keras方向发展远离Estimators,我们如何将我们的预处理管道(例如,使用tf.Transformbuild_serving_input_fn()(用于估算器)纳入我们的tf.keras模型中?


据我了解,合并此预处理图形的唯一方法是首先使用Keras构建模型。训练吧。然后使用将其导出为估算器tf.keras.estimator.model_to_estimator。然后创建一个serving_input_fn并将估算器导出为已保存的模型,并serving_input_fn在服务时将其一起使用。

对我来说,这似乎很乏味,而不是正确的做事方式。相反,我想直接从Keras转到Saved Model。


问题

我希望能够在Keras保存的模型中包含APAHCE BEAM预处理图形。

我想提供训练有素的Keras模型,因此我使用SavedModel导出了它。给定一个训练有素的模型,我想应用以下逻辑来预测结果。

raw_features = { 'feature_col_name': [100] } # features to transform
working_dir = 'gs://path_to_transform_fn' 

# transform features
transformed_features = tf_transform_output.transform_raw_features(raw_features)

model = load_model('model.h5')
model.predict(x=transformed_features)
Run Code Online (Sandbox Code Playgroud)

定义模型时,我使用Functional API,并且模型具有以下输入:

for i in numerical_features:
    num_inputs.append(tf.keras.layers.Input(shape=(1,), name=i))
Run Code Online (Sandbox Code Playgroud)

这是问题所在,因为张量不是直接从tf.Dataset输入到keras中,而是使用该Input()层链接。

使用导出模型时tf.contrib.saved_model.save_keras_model(model=model, saved_model_path=saved_model_path),如果我在单独的脚本中进行预处理,则可以很容易地提供预测。这样的输出看起来像 在此处输入图片说明

这是一般情况吗?例如,我将这些功能作为某些外部脚本的一部分进行预处理,然后发送transformed_features到模型进行预测。

理想情况下,它们都将在Keras模型/单个图形的一部分内发生。目前看来,我正在使用一个图的输出作为另一图的输入。相反,我希望能够使用单个图形。

如果使用估算器,我们可以构建一个serving_input_fn(),可以将其作为估算器的参数包括在内,这使我们可以将预处理逻辑合并到图形中。

我也想听听您关于使用Cloud ML服务模型的Keras + SavedModel +预处理想法

keras tensorflow apache-beam google-cloud-ml

5
推荐指数
1
解决办法
169
查看次数

4
推荐指数
1
解决办法
225
查看次数

将基本的Tensorflow模型导出到Google Cloud ML

我正在尝试导出本地张量流模型以在Google Cloud ML上使用它并对其进行预测。

我正在使用带有mnist数据tensorflow服务示例。他们处理和使用其输入/输出向量的方式有很多差异,这不是您在在线典型示例中所能找到的。

我不确定如何设置签名的参数:

model_exporter.init(
    sess.graph.as_graph_def(),
    init_op = init_op,
    default_graph_signature = exporter.classification_signature(
        input_tensor = "**UNSURE**" ,
        scores_tensor = "**UNSURE**"),
    named_graph_signatures = {
        'inputs' : "**UNSURE**",
        'outputs': "**UNSURE**"
    }

    )
model_exporter.export(export_path, "**UNSURE**", sess)
Run Code Online (Sandbox Code Playgroud)

这是我其余的代码:

import sys
import tensorflow as tf
from tensorflow.contrib.session_bundle import exporter

import numpy as np
from newpreprocess import create_feature_sets_and_labels

train_x,train_y,test_x,test_y = create_feature_sets_and_labels()

x = tf.placeholder('float', [None, 13])
y = tf.placeholder('float', [None, 1])

n_nodes_hl1 = 20
n_nodes_hl2 = 20

n_classes = 1
batch_size = …
Run Code Online (Sandbox Code Playgroud)

python machine-learning tensorflow tensorflow-serving google-cloud-ml

4
推荐指数
1
解决办法
1598
查看次数

将图形proto(pb/pbtxt)转换为SavedModel,以便在TensorFlow服务或Cloud ML Engine中使用

我一直在跟踪我训练的模型上的TensorFlow for Poets 2 codelab,并创建了一个带有嵌入权重的冻结量化图.它被捕获在一个文件中 - 比如说my_quant_graph.pb.

由于我可以使用TensorFlow Android推理库推断该图表,我认为我可以使用Cloud ML Engine做同样的事情,但它似乎只适用于SavedModel模型.

如何在单个pb文件中简单地转换冻结/量化图以在ML引擎上使用?

tensorflow tensorflow-serving google-cloud-ml

4
推荐指数
1
解决办法
8626
查看次数

使用 Workload Identity 对 Kubernetes 上的 Cloud ML Engine 容器中的独立 gsutil 进行身份验证

我正在 Google Cloud AI Training (Cloud ML Engine) 上启动容器镜像

在这些容器中,我需要使用 gsutil。一些容器具有 gsutil。在这种情况下,我可以立即使用它而无需任何身份验证步骤。

有些容器没有 gsutil,所以我必须安装它。问题是安装的 gsutil 不起作用。

当我使用官方cloud-sdk图像时,gsutil无需任何身份验证步骤即可工作。

当我使用python:3.7图像并gsutil从 PyPI安装时,它不起作用:

python -m pip install gsutil --quiet
gsutil cp a gs://b/c
Run Code Online (Sandbox Code Playgroud)

ServiceException: 401 匿名调用者没有 storage.objects.get 访问...

我怎样才能让独立的 gsutil 获得所需的凭据?

大多数指南侧重于手动调用gcloud auth、复制 URL 和复制回令牌。这不是我寻求的解决方案(应该是自动化的)。我知道自动化解决方案是可能的,因为在某些图像gsutil中是开箱即用的。

gsutil kubernetes google-cloud-ml google-cloud-ai

4
推荐指数
1
解决办法
575
查看次数