- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Keras 对我的数据集进行一些训练,每次都继续运行以找到获得最佳结果所需的轮数非常耗时。我尝试使用回调来获得最佳模型,但它不起作用并且通常停止得太早。另外,保存每 N 个 epochs 对我来说不是一个选择。
我想做的是在完成一些特定时期后保存模型。比方说,epoch = 150
结束后,保存为model.save(model_1.h5)
,epoch = 152
后>,它将被保存为 model.save(model_2.h5)
等...对于几个特定的时期。
有没有办法在 Keras 中实现这个?我已经在寻找一种方法,但到目前为止还没有运气。
感谢您的任何帮助/建议。
最佳答案
编辑
在大多数情况下,使用@Toan Tran 在他的回答中建议的名称格式就足够了。
但是如果你需要一些复杂的逻辑,你可以使用 callback , 例如
import keras
class CustomSaver(keras.callbacks.Callback):
def on_epoch_end(self, epoch, logs={}):
if epoch == 2: # or save after some epoch, each k-th epoch etc.
self.model.save("model_{}.hd5".format(epoch))
on_epoch_end
在每个纪元结束时调用; epoch
是一个纪元数,后一个参数是一个日志(你可以在文档中阅读其他回调方法)。将逻辑放入此方法中(在示例中它尽可能简单)。
创建保存器对象并将其放入fit
方法:
import keras
import numpy as np
inp = keras.layers.Input(shape=(10,))
dense = keras.layers.Dense(10, activation='relu')(inp)
out = keras.layers.Dense(1, activation='sigmoid')(dense)
model = keras.models.Model(inp, out)
model.compile(optimizer="adam", loss="binary_crossentropy",)
# Just a noise data for fast working example
X = np.random.normal(0, 1, (1000, 10))
y = np.random.randint(0, 2, 1000)
# create and use callback:
saver = CustomSaver()
model.fit(X, y, callbacks=[saver], epochs=5)
在 bash
中:
!ls
Out:
model_2.hd5
所以,它有效。
关于python - 在特定时期保存 Keras 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54323960/
想要匹配单词i.v.大小写不敏感 有图案 (?i)\bi\.v\. 但希望末尾有一个单词边界 上面的模式失败了,因为它匹配 静脉注入(inject) 但是如果我尝试在末尾添加工作边界 (?i)\bi\
当 Eclipse Package Explorer 中的文件夹(链接到文件系统中某处的目录)包含名称以 . (句号),这些文件不会出现。 Eclipse 可以配置为显示这些文件吗?如果可以,如何配置
当 Eclipse Package Explorer 中的文件夹(链接到文件系统中某处的目录)包含名称以 . (句号),这些文件不会出现。 Eclipse 可以配置为显示这些文件吗?如果可以,如何配置
在P1881提案中,提出了 C++ 代码的历元(在模块级别)的概念。这样的功能可以允许在模块级别自定义 C++ 语法和 C++ 行为,而不必破坏向后兼容性。 More elaborate motiva
我是 git 的新手,我有一个关于在 git 中添加文件的问题。我发现了多个关于 git add . 和 git add -a、git add --all、git 之间区别的 stackoverflo
我是一名优秀的程序员,十分优秀!