其他分享
首页 > 其他分享> > tensorflo实现Droppath

tensorflo实现Droppath

作者:互联网

# 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)

 

搜索

复制

标签:inputs,Droppath,tensorflo,实现,self,drop,tf,prob,tensor
来源: https://www.cnblogs.com/cxhzy/p/16154578.html