Я пытаюсь обучить LSTM с помощью Google Cloud ML.Набор обучающих данных содержит около 600 tfrecords
файлов, каждый из которых составляет около 147 МБ.В целом набор данных составляет около 90 ГБ.
Когда я тренируюсь в облачном мл только с несколькими из этих tfrecords
, обучение начинается очень быстро.Но когда я использую все значения tfrecords
, задание ожидает около 1 часа в этом состоянии:
INFO 2018-06-08 14:42:18 -0400 master-replica-0 Calling model_fn.
INFO 2018-06-08 14:42:20 -0400 master-replica-0 Done calling model_fn.
INFO 2018-06-08 14:42:20 -0400 master-replica-0 Create CheckpointSaverHook.
INFO 2018-06-08 14:42:22 -0400 master-replica-0 Graph was finalized.
INFO 2018-06-08 14:42:22 -0400 master-replica-0 Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
INFO 2018-06-08 14:42:22 -0400 master-replica-0 successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
INFO 2018-06-08 14:42:22 -0400 master-replica-0 Found device 0 with properties:
ERROR 2018-06-08 14:42:22 -0400 master-replica-0 name: Tesla K80 major: 3 minor: 7 memoryClockRate(GHz): 0.8235
ERROR 2018-06-08 14:42:22 -0400 master-replica-0 pciBusID: 0000:00:04.0
ERROR 2018-06-08 14:42:22 -0400 master-replica-0 totalMemory: 11.17GiB freeMemory: 11.10GiB
INFO 2018-06-08 14:42:22 -0400 master-replica-0 Adding visible gpu devices: 0
INFO 2018-06-08 14:42:23 -0400 master-replica-0 Device interconnect StreamExecutor with strength 1 edge matrix:
INFO 2018-06-08 14:42:23 -0400 master-replica-0 0
INFO 2018-06-08 14:42:23 -0400 master-replica-0 0: N
INFO 2018-06-08 14:42:23 -0400 master-replica-0 Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 10763 MB memory) -> physical GPU (device: 0, name: Tesla K80, p
ci bus id: 0000:00:04.0, compute capability: 3.7)
INFO 2018-06-08 14:42:23 -0400 master-replica-0 Running local_init_op.
INFO 2018-06-08 14:42:23 -0400 master-replica-0 Done running local_init_op.
INFO 2018-06-08 14:42:30 -0400 master-replica-0 Saving checkpoints for 1 into gs://teamcore-rnn/discrete_sales_test_0_less_ts/model.ckpt.
INFO 2018-06-08 14:42:37 -0400 master-replica-0 Calling model_fn.
INFO 2018-06-08 14:42:39 -0400 master-replica-0 Done calling model_fn.
INFO 2018-06-08 14:42:39 -0400 master-replica-0 Starting evaluation at 2018-06-08-18:42:39
INFO 2018-06-08 14:42:39 -0400 master-replica-0 Graph was finalized.
INFO 2018-06-08 14:42:39 -0400 master-replica-0 Adding visible gpu devices: 0
INFO 2018-06-08 14:42:39 -0400 master-replica-0 Restoring parameters from gs://teamcore-rnn/discrete_sales_test_0_less_ts/model.ckpt-1
INFO 2018-06-08 14:42:39 -0400 master-replica-0 Device interconnect StreamExecutor with strength 1 edge matrix:
INFO 2018-06-08 14:42:39 -0400 master-replica-0 0
INFO 2018-06-08 14:42:39 -0400 master-replica-0 0: N
INFO 2018-06-08 14:42:39 -0400 master-replica-0 Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 10763 MB memory) -> physical GPU (device: 0, name: Tesla K80, p
ci bus id: 0000:00:04.0, compute capability: 3.7)
INFO 2018-06-08 14:42:39 -0400 master-replica-0 Running local_init_op.
INFO 2018-06-08 14:42:39 -0400 master-replica-0 Done running local_init_op.
Затем выполняется 2000 шагов и ожидает и час в том же состоянии.Я очень новичок в Tensorflow, но, может быть, потому, что чтение набора данных идет медленно?Все данные находятся в GCS в том же регионе, что и регион задания.
Код, который я использую для чтения набора данных:
def tf_record_input_fn(filenames,
parser_fn,
params,
mode=tf.estimator.ModeKeys.TRAIN):
epochs = params.epochs if mode == tf.estimator.ModeKeys.TRAIN else 1
dataset = tf.data.TFRecordDataset(filenames)
dataset = dataset.map(parser_fn).filter(filter_empty_labels)
dataset = dataset.filter(filter_time_series_with_nans)
dataset = dataset.shuffle(params.batch_size * 10).repeat(epochs).batch(
params.batch_size)
iterator = dataset.make_one_shot_iterator()
ts_features_batch, c_features_batch, key_batch, labels_batch = iterator.get_next(
)
features_batch = {
'time_series': ts_features_batch,
'context': c_features_batch,
'key': key_batch
}
return features_batch, labels_batch
Спасибо за помощь и был бы рад предоставить большедетали, если кому-то это нужно.