我正在使用ruby的ai4r gem,构建一个神经网络。 gem的1.1版允许我简单地将Marshal.dump(网络)写入文件,我可以随时加载网络。
几年后的版本1.9,我再也无法做到这一点。我尝试时会生成此错误:
no marshal_dump is defined for class Proc
我知道错误的原因 - Marshal无法处理对象中的过程。很公平。
那么ai4r内置了什么?我一直在寻找没有运气。我无法想象任何神经网络的实际用途,每次你想要使用它时都必须从头开始重建。
答案 0 :(得分:2)
我刚刚解决了这个问题。版本1.10应该可以正常工作。
但是,如果使用lambda函数自定义传播函数,则必须在加载实例后手动还原它。 这是因为lambda函数无法序列化,因此实现将其重置为默认函数。 很抱歉没有尽快解决,但我在工作中度过了一些疯狂的事情。
干杯,
Sergio Fierens。