PB 12+13
艰苦卓绝的调参之路
没有一个是对的,省流:做了一天无用功。
对!今天就是在研究作者大大是如何用MAE得到能看(听)的结果的。
mae abs_in,先绝对值再平均
LOSS = tf.reduce_mean(tf.abs(p_ola-y_ola))
模型有batchnorm
模型无batchnorm
mae abs_in,先平均再绝对值
LOSS = tf.abs(tf.reduce_mean(p_ola-y_ola))
虽然但是,损失函数很小,基本没学的样子,且最高频有细线和公式描述也不符,pass。
参考github L2
很糟糕
模型有batchnorm
模型无batchnorm
总体感觉无batchnorm更好,所以原作者把这行注释掉了。
以上没有用ola算,按照论文,把P Y换成了p_ola, y_ola
如果求两次平均
sqrt_l2_loss = tf.sqrt(tf.reduce_mean(input_tensor=(p_ola-y_ola)**2, axis=1))
avg_sqrt_l2_loss = tf.reduce_mean(input_tensor=sqrt_l2_loss, axis=0)
模型有batchnorm
模型无batchnorm
如果求一次平均
sqrt_l2_loss = tf.sqrt(tf.reduce_mean(input_tensor=(p_ola-y_ola)**2))
模型有batchnorm
模型无batchnorm
还不放弃,用abs求两次平均
sqrt_l2_loss = tf.reduce_mean(input_tensor=tf.abs(p_ola-y_ola), axis=1)
avg_sqrt_l2_loss = tf.reduce_mean(input_tensor=sqrt_l2_loss, axis=0)
LOSS = avg_sqrt_l2_loss
模型有batchnorm
啥也没学到,还有极强的中线,也许是平均求多的缘故。
模型无batchnorm
总算是学到点东西了,不过还是有线。
我感觉还是无batchnorm比较好,大意就是少求几次平均。
总体来看我觉得
LOSS = tf.reduce_mean(tf.abs(p_ola-y_ola)),无batchnorm。还挺好的。
现在有两方面的考虑:
1.模型问题?——用audiounet试试。
首先使用官方的参数。
再用我认为最好的
也没问题,甚至学得更清晰了,苦笑
现在在audiounet的基础上只修改
n_filters = [64, 64, 64, 128, 128, 128, 256, 256, 256]
n_filtersizes = [11, 11, 11, 11, 11, 11, 11, 11, 11, 11]
问题也不大。
接着把relu改成prelu
有了。
这正是我问作者的问题。可是他不回复我呀哭。
一个网站,值得收藏
https://martin-thoma.com/neuronale-netze-vorlesung/#aktivierungsfunktionen