Ты прав, в этом не было необходимости
ель - использовать данные обучения (формат: tfrecords), хранящиеся в облачном хранилище Google, при локальном запуске приложения Tensorflow Training. (Почему локально?: Я тестирую, прежде чем превратить его в учебный пакет для Cloud ML)
На основеэта тема Мне не нужно ничего делать, так как базовый API Tensorflow должен иметь возможность читать gs: // (url)
Однако это не так, и ошибки, которые я вижу, имеют формат:
2017-06-06 15: 38: 55.589068: I tenorflow / core / platform / cloud / retring_utils.cc: 77] Операция не выполнена и будет автоматически повторена через 1,38118 секунд (попытка 1 из 10), вызванная: Недоступно: Ошибка при выполнении HTTP-запроса (код ответа HTTP 0, код ошибки 6, сообщение об ошибке «Не удалось разрешить метаданные узла»)
2017-06-06 15: 38: 56.976396: I tenorflow / core / platform / cloud / retring_utils.cc: 77] Операция завершилась неудачно и будет автоматически повторена через 1,94469 секунд (попытка 2 из 10), вызванная: Недоступно: Ошибка при выполнении HTTP-запроса (код ответа HTTP 0, код ошибки 6, сообщение об ошибке «Не удалось разрешить метаданные узла»)
2017-06-06 15: 38: 58.925964: I tenorflow / core / platform / cloud / retring_utils.cc: 77] Операция завершилась неудачно и будет автоматически повторена через 2,76491 секунды (попытка 3 из 10), вызванная: Недоступно: Ошибка при выполнении HTTP-запроса (код ответа HTTP 0, код ошибки 6, сообщение об ошибке «Не удалось разрешить метаданные узла»)
Я не могу понять, с чего начать отладку этой ошибки.
Вот фрагмент, который воспроизвел проблему, а также показывает API-интерфейсы тензорного потока, которые я использую.
def _preprocess_features(features):
"""Function that returns preprocessed images"""
def _parse_single_example_from_tfrecord(value):
features = (
tf.parse_single_example(value,
features={'image_raw': tf.FixedLenFeature([], tf.string),
'label': tf.FixedLenFeature([model_config.LABEL_SIZE], tf.int64)
})
)
return features
def _read_and_decode_tfrecords(filename_queue):
reader = tf.TFRecordReader()
# Point it at the filename_queue
_, value = reader.read(filename_queue)
features = _parse_single_example_from_tfrecord(value)
# decode the binary string image data
image, label = _preprocess_features(features)
return image, label
def test_tfread(filelist):
train_filename_queue = (
tf.train.string_input_producer(filelist,
num_epochs=None,
shuffle=True))
image, label = (
_read_and_decode_tfrecords(train_filename_queue))
return image
images= test_tfread(["gs://test-bucket/t.tfrecords"])
sess = tf.Session(config=tf.ConfigProto(
allow_soft_placement=True,
log_device_placement=True))
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess=sess, coord=coord)
try:
for step in range(model_config.MAX_STEPS):
_ = sess.run([images])
finally:
# When done, ask the threads to stop.
coord.request_stop()
# Finally, wait for them to join (i.e. cleanly shut down)
coord.join(threads)