以下只是我从博客里整理出来的,有很多都没自己试过,也许并不准确。
所有网络都涉及到的参数:
learning rate: 1e-2到1e-5之间。一般设1e-3就可以。
batch size: 16, 32, 64, 128, 256。一般设2^N,具体N取多少可以根据自己的计算资源来决定。
optimizer:Adam,SGD,Adadelta。一般用Adam就可以。
dropout:0.3, 0.5, 0.7, 数据量多的时候也可以不加。一般设0.5。
activation function:常用的就是relu, tanh, 和relu的几个变体(leaky-relu, gelu)。一般用relu, 但RNN优先用tanh。
hidden size:64, 128, 256, 512。之所以设2^N是为了方便一些分头、分片之类的操作。
weight initializer:常用的是random_normal和random_uniform。网上说可以无脑使用Xavier nitializer,但是我又查了查,在激活函数为relu的情况之下,其实应该使用He initializer。
打算采取的策略是embedding用random_uniform,其他地方无脑使用xavier_initializer。
Xavier initializer和He initializer在tensorflow1.12中的实现如下:
# Xavier initia