Keras: 基于 Python 的深度学习库要在不同的输入上共享同一个层,只需实例化该层一次,然后根据需要传入你想要的输入 即可: # 这一层可以输入一个矩阵,并返回一个 64 维的向量 shared_lstm = LSTM(64) # 当我们重用相同的图层实例多次,图层的权重也会被重用 (它其实就是同一层) encoded_a = shared_lstm(tweet_a) encoded_b = shared_lstm(tweet_b) # 然后再连接两个向量: 让我们暂停一会,看看如何读取共享层的输出或输出尺寸。 3.2.6 层「节点」的概念 每当你在某个输入上调用一个层时,都将创建一个新的张量(层的输出),并且为该层添加 一个「节点」,将输入张量连接到输出张量。当多次调用同一个图层时,该图层将拥有多个节点 索引 (0, 1, 2…)。 在之前版本的 Keras 中,可以通过 layer.get_output() 来获得层实例的输出张量,或者通 过 layer.output_shape set_weights(weights): 从含有 Numpy 矩阵的列表中设置层的权重(与 get_weights 的输出形状相同)。 • layer.get_config(): 返回包含层配置的字典。此图层可以通过以下方式重置: layer = Dense(32) config = layer.get_config() reconstructed_layer = Dense.from_config(config)0 码力 | 257 页 | 1.19 MB | 1 年前3
动手学深度学习 v2.001的正态分布中随机采 样,偏置参数将初始化为零。 正如我们在构造nn.Linear时指定输入和输出尺寸一样,现在我们能直接访问参数以设定它们的初始值。我 们通过net[0]选择网络中的第一个图层,然后使用weight.data和bias.data方法访问参数。我们还可以使用 替换方法normal_和fill_来重写参数值。 net[0].weight.data.normal_(0, 0 这意味着输出的高度和宽度将分别增加ph和pw。 在许多情况下,我们需要设置ph = kh − 1和pw = kw − 1,使输入和输出具有相同的高度和宽度。这样可以在 构建网络时更容易地预测每个图层的输出形状。假设kh是奇数,我们将在高度的两侧填充ph/2行。如果kh是 偶数,则一种可能性是在输入顶部填充⌈ph/2⌉行,在底部填充⌊ph/2⌋行。同理,我们填充宽度的两侧。 卷积神经网络中卷 而我们的机器学习任务通常会跟全局图像的问题有关(例如,“图像是否包含一只猫呢?”),所以我们最后一 层的神经元应该对整个输入的全局敏感。通过逐渐聚合信息,生成越来越粗糙的映射,最终实现学习全局表 示的目标,同时将卷积图层的所有优势保留在中间层。 此外,当检测较底层的特征时(例如 6.2节中所讨论的边缘),我们通常希望这些特征保持某种程度上的平 移不变性。例如,如果我们拍摄黑白之间轮廓清晰的图像X,并将整个图像向右移动一个像素,即Z[i0 码力 | 797 页 | 29.45 MB | 1 年前3
共 2 条
- 1













