美文网首页
[tf]有多个loss的时候使用collection和add_n

[tf]有多个loss的时候使用collection和add_n

作者: VanJordan | 来源:发表于2019-04-28 11:09 被阅读0次
    import tensorflow as tf
    import numpy as np
    
    def get_weights(shape, lambd):
    
        var = tf.Variable(tf.random_normal(shape), dtype=tf.float32)
        tf.add_to_collection('losses', tf.contrib.layers.l2_regularizer(lambd)(var))
        return var
    
    
    x = tf.placeholder(tf.float32, shape=(None, 2))
    y_ = tf.placeholder(tf.float32, shape=(None, 1))
    batch_size = 8
    layer_dimension = [2, 10, 10, 10, 1]
    n_layers = len(layer_dimension)
    cur_lay = x
    in_dimension = layer_dimension[0]
    
    for i in range(1, n_layers):
        out_dimension = layer_dimension[i]
        weights = get_weights([in_dimension, out_dimension], 0.001)
        bias = tf.Variable(tf.constant(0.1, shape=[out_dimension]))
        cur_lay = tf.nn.relu(tf.matmul(cur_lay, weights)+bias)
        in_dimension = layer_dimension[i]
    
    mess_loss = tf.reduce_mean(tf.square(y_-cur_lay))
    tf.add_to_collection('losses', mess_loss)
    loss = tf.add_n(tf.get_collection('losses'))
    

    相关文章

      网友评论

          本文标题:[tf]有多个loss的时候使用collection和add_n

          本文链接:https://www.haomeiwen.com/subject/qmfdnqtx.html