我正在使用Estimator API从docker映像tensorflow/tensorflow:1.13.1-gpu-py3-jupyter中使用Tensorflow 1.13。我有一台装有4个K-80 GPU的机器。当我训练模型时,日志表明Tensorflow可以看到我的设备。但是,在Tensorboard上查看模型图时,它表示仅在使用CPU。在Tensorboard中查看全局步数/秒时,它说带有GPU的计算机上的模型与仅使用CPU的笔记本电脑相比,每秒花费的全局步数(但几乎是相同)。
我的训练代码:
estimator = tf.estimator.DNNClassifier(
model_dir=args['model_dir'],
feature_columns=[tf.feature_column.numeric_column(key='val')],
hidden_units=args['hidden_units'],
n_classes=args['num_classes'],
optimizer=tf.train.AdamOptimizer(
learning_rate=args['learning_rate'],
))
def gen_input_fn(data, target_column, batch_size=32, shuffle=True, num_epochs=1):
return tf.estimator.inputs.pandas_input_fn(
x=data,
y=data[str(target_column)],
shuffle=shuffle,
batch_size=batch_size,
num_epochs=num_epochs
)
train_spec = tf.estimator.TrainSpec(input_fn=gen_input_fn(train_data, train_data.shape[1], num_epochs=args['num_epochs']))
eval_spec = tf.estimator.EvalSpec(input_fn=gen_input_fn(eval_data, eval_data.shape[1], shuffle=False), throttle_secs=args['throttle_secs'])
tf.estimator.train_and_evaluate(estimator, train_spec, eval_spec)