【发布时间】:2018-02-23 00:03:51
【问题描述】:
如何在每个 epoch 之后获取 Keras 中 Conv2D 层的所有过滤器(如 32 ,64 等)的权重?我提到这一点,因为初始权重是随机的,但在优化后它们会改变。
我查了this answer,但不明白。请帮助我找到一个解决方案,在每个时期之后获取所有过滤器的权重。
还有一个问题是,在 Keras 文档中,Conv2D 层的输入形状是(样本、通道、行、列)。 samples 到底是什么意思?是我们拥有的输入总数(比如在 MNIST 数据集中它是 60.000 个训练图像)还是批量大小(比如 128 或其他)?
【问题讨论】:
-
你到底有什么不明白的?你需要具体,否则它是一个重复的问题。
-
假设我在 keras 中制作一个模型,它有一个像 Conv2D(64, (3, 3), activation='relu') 这样的层,这意味着过滤器的数量是 64,每个过滤器的大小为 3*3。对于任何模型的第一次迭代,这些 64*3*3 值通过 glorot_uniform 初始化程序进行初始化,然后在 model.compile 中我使用 sgd 优化器。这意味着现在这 64 个过滤器将获得新的值。我想看看这些新的价值观。
-
我知道。您链接的问题提供了答案。你没有解释你从另一个问题中不明白的地方。
-
我得到了第一个问题的答案。 model.layers[index of layer].get_weights()[0] 将权重。只是我想在 keras 的 Conv2D 层中询问样本是什么意思?我拥有的输入总数或 batch_size。因为在 tensorflow 文档中,他们提到了 Conv 层的批量大小。
标签: keras