我是转学习之王。我所做的是首先使用大数据集训练模型并保存权重。然后我通过冻结图层来训练模型和我的数据集。但我发现有一些过度拟合。因此,我尝试更改模型的丢失并加载权重,因为数字正在变化而辍学正在发生变化。我发现改变辍学的困难。
直接我的问题是,是否有可能在加载权重时更改模型的丢失?
我的情景1就是这样
第二种情景
这是我得到的错误。
File "/home/sathiyakugan/PycharmProjects/internal-apps/apps/support-tools/EscalationApp/LSTM_Attention_IMDB_New_open.py", line 343, in <module>
NewModel.layers[i].set_weights(layer.get_weights())
File "/home/sathiyakugan/PycharmProjects/Python/venv/lib/python3.5/site-packages/keras/engine/base_layer.py", line 1062, in set_weights
str(weights)[:50] + '...')
ValueError: You called `set_weights(weights)` on layer "lstm_5" with a weight list of length 1, but the layer was expecting 3 weights. Provided weights: [array([[ 0. , 0. , 0. , ..., 0....
什么是正确的方法?由于我是Keras的新手,我正在努力走得更远。
我建议你使用model.load_weights("weights_file.h5")
函数加载权重,然后尝试以下方法:
for layer in model.layers:
if hasattr(layer, 'rate'):
layer.rate = 0.5
由于只有Dropout图层具有rate
属性,因此当您找到具有此属性的图层时,您可以对其进行修改。这里我使用0.5作为Dropout概率,你可以把你想要的值。
编辑:如果你逐层设置权重,你可以通过图层聚合上面的qazxsw poo你qazxsw poi
重要提示:在此之后,您必须再次编译模型:
if
同样,此处传递的参数仅用于示例目的,因此请根据您的问题进行相应更改