keras模型合并请教

  统计/机器学习 深度学习 Python 人工神经网络 强化学习    浏览次数:4317        分享
0

      假如我有2台服务器A和B,我建立了一个相同结构的Sequential模型,同时在2个服务器上跑, 保存后得到了2个h5的文件,我是否能将这2个文件进行合并,得到一个新的结果,来提升成功率。 

      我是在看到了A3C的理念后,想到的,希望能在多台服务器进行学习,然后和主服务器通讯,更新结果,并获取新的模型数据,再进行下一轮学习。

      在网上搜索了很久没有看到类似的情况,不知道是用model.updates还是model.add_update,或其他什么方法?是只更新权重还是包含优化器状态?

      希望有人帮助得到解答,谢谢,祝大家新年快乐!

 

豆豆爹地   2019-02-10 12:28



   2个回答 
1

这些天我思考了一下,keras在fit的时候,应该也是进行了数据更新,可fit部分的代码确实没看懂。。。。

找到到一个类似的代码,如下:

updates = self.rms_optimizer.get_updates(self.model.trainable_weights, [], loss)

K.function([self.model.input, self.discounted_r], [], updates=updates)

这个是更新了loss,keras里面最重要的是权重还是loss?这2者的关系很困惑,fit学出来保存的好像是权重,loss呢。。。

之前的貌似被吞了,现在补上。。。

SofaSofa数据科学社区DS面试题库 DS面经

豆豆爹地   2019-02-15 09:35

0

最简单的方法就是直接把结果合并,类似于stacking

每个服务器都训练出一个模型,每个模型的预测值的平均值就可以作为你合并之后的结果

或者也可以ensemble,把每个模型的输出值作为ensemble模型的输入值,再训练一个小模型

SofaSofa数据科学社区DS面试题库 DS面经

何立诚   2019-02-11 04:47



  相关讨论

keras怎么设置/改动rmsprop的学习率?

keras.models.Sequential()是一种什么模型

keras里的predict,predict_classes,predict_proba有什么区别?

怎么在keras中加载MNSIT数据集?

keras和tensorflow有什么关系?

keras load_model报错

keras sequential model怎么增加一个dropout层?

计算机视觉与信息最新技术

keras hdf5 從某層輸入數值

Keras模型针对同一数据集做fit和evaluation,accuracy值却不相同

  随便看看

随机梯度下降(sgd)的收敛问题

python或者numpy求数值的中位数、四分位数

pandas报错ValueError: Cannot convert non-finite values (NA or inf) to integer

什么是混淆矩阵(confusion matrix)

二元分类为什么不能用MSE做为损失函数?