# def drop_path(inputs, keep_prob, is_training=True, scope=None):
def drop_path(inputs, keep_prob, is_training=True):
"""Drops out a whole example hiddenstate with the specified probability.
"""
# with tf.name_scope(scope, 'drop_path', [inputs]):
net = inputs
if is_training:
batch_size = tf.shape(net)[0]
noise_shape = [batch_size, 1, 1, 1]
random_tensor = keep_prob
random_tensor += tf.random_uniform(noise_shape, dtype=tf.float32)
binary_tensor = tf.floor(random_tensor)
net = tf.div(net, keep_prob) * binary_tensor
return net
class DropPath(keras.layers.Layer):
def __init__(self, drop_prob=None):
super(DropPath, self).__init__()
self.drop_prob = drop_prob
def call(self, inputs,training=None):
return drop_path(inputs, self.drop_prob, training)
搜索
复制
原创文章,作者:bd101bd101,如若转载,请注明出处:https://blog.ytso.com/244731.html