在相同的网络配置下,为什么Keras的性能比Pytorch好?

时间:2019-12-15 13:55:10

标签: tensorflow keras pytorch

最近,我在同一数据集上比较了Keras版本和Pytorch版本的unet ++实现。但是,使用Keras时,损耗会持续下降,并且在10个周期后精度会更高;而使用Pytorch,损耗会不均匀地下降,并且在10个周期后精度会下降。任何人都遇到过此类问题并有任何答案吗?

最后的pytorch培训过程如下:

  

2019-12-15 18:14:20时代:9迭代:1214/1219亏损:0.464673 acc:0.581713

     

2019-12-15 18:14:21时代:9迭代:1215/1219亏损:0.450462 acc:0.584101

     

2019-12-15 18:14:21时代:9迭代:1216/1219亏损:0.744811 acc:0.293406

     

2019-12-15 18:14:22时代:9迭代:1217/1219亏损:0.387612 acc:0.735630

     

2019-12-15 18:14:23时代:9迭代:1218/1219亏损:0.767146 acc:0.364759

最后的keras培训过程如下:

  

685/690 [===========================>。]-ETA:2秒-损失:0.4940-acc:0.7309

     

686/690 [===========================>。]-ETA:1s-损失:0.4941-acc:0.7306

     

687/690 [===========================>。]-ETA:1s-损失:0.4939-acc:0.7308

     

688/690 [===========================>。]-ETA:0s-损失:0.4942-acc:0.7303

     

689/690 [===========================>。]-ETA:0s-损失:0.4943-acc:0.7302

1 个答案:

答案 0 :(得分:0)

好吧,如果没有任何代码段,很难说。话虽如此,通常来说,初始化比您想象的要重要得多。我确定pytorch的默认初始化与keras不同,并且我在过去也遇到过类似的问题。

要检查的另一件事是优化程序参数,请确保不仅使用相同的优化程序(sgdadam,...),而且要使用相同的参数({{1 }},lrbeta,...)