TensorFlow-tf.keras.layers.Layer与tf.keras.Model之间的差异 - python

通过使用tf.keras读取documentation of implementing custom layers,他们指定了两个要继承的选项tf.keras.Layertf.keras.Model

在创建自定义图层的背景下,我想问自己这两者之间有什么区别?从技术上来说有什么不同?

例如,如果我要实现变压器编码器,哪个更合适? (假设变压器在我的完整模型中只是一个“层”)

参考方案

在文档中:

Model类具有与Layer相同的API,以下内容
差异:-公开了内置的培训,评估和
预测循环(model.fit(),model.evaluate(),model.predict())。 --
它通过model.layers公开其内部层的列表。
属性。 -它公开了保存和序列化API。

实际上,“图层”类对应于我们在
文学作为“层”(如“卷积层”或“循环
层”)或作为“块”(如“ResNet块”或“起始块”)。

同时,“模型”类对应于
文学作为“模型”(如“深度学习模型”)或
“网络”(如“深度神经网络”中的)。

因此,如果您希望能够在这些块上调用.fit().evaluate().predict(),或者希望能够分别保存和加载这些块,或者应该使用Model类。 Layer类更精简,因此您不会使用不必要的功能来夸大图层...但是我想这通常不会是一个大问题。

Keras:ModelCheckpoint保存到变量而不是文件? - python

我想针对X个时期训练我的模型,并以最小的验证错误获得最佳结果。我发现的解决方案是使用ModelCheckpoint回调,如果当前纪元的结果更好,则可以将其配置为覆盖模型保存。但是,在最坏的情况下,这意味着在每个时期都将模型写入硬盘驱动器,这会产生巨大的时间开销。是否可以将模型保存到变量中,所以我只需要保存一次?还是我可以做另一种优化? 参考方案 根据save…

Keras:找出层数 - python

有没有一种方法可以获取Keras模型中的层数(而不是参数)?model.summary()非常有用,但是从中获取层数并不容易。 参考方案 model.layers将为您提供所有图层的列表。因此,该数字为len(model.layers)

如何在keras中垂直堆叠训练好的模型? - python

我在keras中有两个训练有素的模型,我想将一个模型堆叠在另一个模型的顶部以形成一个模型。我想将训练有素的模型整合为一个模型。 我认为merge(Merge)用于水平堆叠模型,而我想垂直堆叠keras功能API模型。PS:输出1的形状与输入2相同 参考方案 inputA = Input(input_shape_for_A) outputA = modelA(…

Keras Tensorboard用于DQN强化学习 - python

我正在使用keras构建DQN,并使用具有经验重播记忆的经典DQN算法对其进行训练。由于在dqn中需要多次调用model.fit,这意味着每次从重播内存中采样批数据时,使用keras的model.fit( .... callbacks=TensorBoard(...))时,每次拟合都会生成新的事件日志文件。它会产生两个问题,首先,它会生成过于笨拙的事件日志文…

Keras中的“无法解释优化程序标识符”错误 - python

当我尝试在Keras中修改SGD优化器的学习率参数时出现此错误。我是否错过了代码中的某些内容,或者我的Keras没有正确安装?这是我的代码:from tensorflow.python.keras.models import Sequential from tensorflow.python.keras.layers import Dense, Flatte…