Kubeflow 中的分布式张量流 - NotFoundError

Posted

技术标签:

【中文标题】Kubeflow 中的分布式张量流 - NotFoundError【英文标题】:Distributed Tensorflow in Kubeflow - NotFoundError 【发布时间】:2019-10-12 19:50:31 【问题描述】:

我关注tutorial 在 GCP 上构建 kubeflow。

在最后一步,在部署 the code 并使用 CPU 进行训练之后。

kustomize build . |kubectl apply -f -

分布式tensorflow遇到这个问题

tensorflow.python.framework.errors_impl.NotFoundError: /tmp/tmprIn1Il/model.ckpt-1_temp_a890dac1971040119aba4921dd5f631a;不 这样的文件或目录 [[节点:保存/SaveV2 = SaveV2[dtypes=[DT_FLOAT,DT_FLOAT,DT_FLOAT,DT_FLOAT,DT_FLOAT, DT_FLOAT、DT_FLOAT、DT_FLOAT、DT_INT64]、 _device="/job:ps/replica:0/task:0/device:CPU:0"](save/ShardedFilename, save/SaveV2/tensor_names, save/SaveV2/shape_and_slices, conv_layer1/conv2d/bias,conv_layer1/conv2d/内核, conv_layer2/conv2d/bias,conv_layer2/conv2d/kernel,dense/bias, 密集/内核,密集_1/偏差,密集_1/内核,全局步骤)]]

我找到了类似的bug report,但不知道如何解决。

【问题讨论】:

【参考方案1】:

来自错误报告。

您可以通过使用共享文件系统(例如 HDFS、GCS 或 NFS 挂载在同一挂载点上)在工作人员和 参数服务器。

只需将数据放在 GCS 上,它就可以正常工作。

模型.py

import tensorflow_datasets as tfds
import tensorflow as tf

# tfds works in both Eager and Graph modes
tf.enable_eager_execution()

# See available datasets
print(tfds.list_builders())

ds_train, ds_test = tfds.load(name="mnist", split=["train", "test"], data_dir="gs://kubeflow-tf-bucket", batch_size=-1)
ds_train = tfds.as_numpy(ds_train)
ds_test = tfds.as_numpy(ds_test)

(x_train, y_train) = ds_train['image'], ds_train['label']
(x_test, y_test) = ds_test['image'], ds_test['label']
x_train, x_test = x_train / 255.0, x_test / 255.0

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28, 1)),
  tf.keras.layers.Dense(512, activation=tf.nn.relu),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train, epochs=5)
print(model.evaluate(x_test, y_test))

【讨论】:

以上是关于Kubeflow 中的分布式张量流 - NotFoundError的主要内容,如果未能解决你的问题,请参考以下文章

由张量流中的索引张量指定的切片二维张量

张量流中的条件图和访问张量大小的for循环

在张量流中,如何迭代存储在张量中的输入序列?

当切片本身是张量流中的张量时如何进行切片分配

张量流中的内存问题

张量流库中的启动问题