在遵循 tensorflow 图像分类教程时,首先它会缓存每个图像的瓶颈:
我已经使用 tensorflow 的Estimator
. 这确实简化了所有代码。但是我想在这里缓存瓶颈功能。
这是我的model_fn
. 我想缓存dense
层的结果,这样我就可以对实际训练进行更改,而不必每次都计算瓶颈。
我怎样才能做到这一点?
def model_fn(features, labels, mode, params):
is_training = mode == tf.estimator.ModeKeys.TRAIN
num_classes = len(params['label_vocab'])
module = hub.Module(params['module_spec'], trainable=is_training and params['train_module'])
bottleneck_tensor = module(features['image'])
with tf.name_scope('final_retrain_ops'):
logits = tf.layers.dense(bottleneck_tensor, units=num_classes, trainable=is_training) # save this?
def train_op_fn(loss):
optimizer = tf.train.AdamOptimizer()
return optimizer.minimize(loss, global_step=tf.train.get_global_step())
head = tf.contrib.estimator.multi_class_head(n_classes=num_classes, label_vocabulary=params['label_vocab'])
return head.create_estimator_spec(
features, mode, logits, labels, train_op_fn=train_op_fn
)
慕仙森
守着一只汪
相关分类