Попытка увеличить количество глобальных шагов для повышения производительности модели
- Для обучения модели с использованием tf.estimator и попытка увеличить глобальный шаг с помощью нескольких графических процессоров.
Для DNNClassifierприменяются следующие конфигурации как для одного, так и для нескольких графических процессоров [без графического процессора: 2]
tf.estimator.DNNClassifier(
model_dir=model_output,
config=config,
feature_columns=deep_columns,
hidden_units=[1024, 512, 256],
optimizer=lambda: tf.AdamOptimizer(
learning_rate=tf.exponential_decay(
learning_rate=0.2,
global_step=tf.get_global_step(),
decay_steps=10000,
decay_rate=0.96))
also tried :
tf.estimator.DNNClassifier(
model_dir=model_output,
config=config,
feature_columns=deep_columns,
#hidden_units=[4096, 2048, 1024, 512, 256, 128, 64],
hidden_units=[256, 128, 64,32,16],
optimizer=tf.train.AdagradOptimizer(learning_rate=0.2))
But not getting any improvement in number of global steps.
b. For deep_columns tried with indicator_column as well as numeric_column columns.
c. Having total cpu core (32) for data reading tried the following snippet:
buffer_size = 32 * 1024 * 1024 # 32 MiB per file
ds = tf.data.TextLineDataset(filenames,buffer_size=buffer_size)
print("reading file " ,filenames)
ds = ds.repeat(num_epochs)
ds = ds.batch(batch_size*2).map(parse_csv_gpu,num_parallel_calls=24)
Expected is to increase the number of global steps more than what is achieved so far from single gpu. [ When using multiple gpu]