参考:https://blog.csdn.net/u012436149/article/details/70264257 并查阅tensorflow底层代码
在完成coursera作业时,发现NN模型的variance过大,尝试使用l2_regularization进行优化。
有两种实现思路:
A、手工直接计算各个权重矩阵的L2范数,然后加到最终的cost函数上。
B、利用tensorflow本身的机制,共分如下几个代码部分:
(1)
lmbd= 0.1
l2_regularizer=tf.contrib.layers.l2_regularizer(lmbd)
#以上代码目的:获得一个计算l2_regularization的函数。lmbd为可调的超参数。
(2)
W1 = tf.get_variable("W1", [25,12288], initializer = tf.contrib.layers.xavier_initializer(seed = 1),regularizer=l2_regularizer)
b1 = tf.get_variable("b1", [25,1], initializer = tf.zeros_initializer())
W2 = tf.get_variable("W2", [12,25], initializer =