class FeatureExtractor(keras.Model): def __init__(self, filters): super(FeatureExtractor, self).__init__() self.conv0_1 = conv2d_bn_act(2 * filters, 5, 2, 'same', 1, True) self.conv0_2 = conv2d_bn_act(2 * filters, 5, 2, 'same', 1, True) self.conv0_3 = make_res_blocks(2 * filters, 1, 6) self.conv1_1 = conv2d_bn_act(2 * filters, 3, 1, 'same', 1, True) self.conv1_2 = make_res_blocks(2 * filters, 1, 4) self.conv1_3 = conv2d(filters, 3, 1, 'same', 1, False) self.conv2_1 = conv2d_bn_act(2 * filters, 3, 2, 'same', 1, True) self.conv2_2 = make_res_blocks(2 * filters, 1, 4) self.conv2_3 = conv2d(filters, 3, 1, 'same', 1, False)
时间: 2023-08-28 13:06:43 浏览: 106
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
这是一个继承自`keras.Model`的神经网络模型类`FeatureExtractor`,用于从输入图像中提取特征。该模型的构建函数`__init__`中定义了多个卷积层和残差块。具体来说,该模型包含三个阶段(stage),每个阶段包含三个卷积层或残差块,用于逐步提取图像特征。在每个阶段中,第一个卷积层或残差块的输出被用作下一个卷积层或残差块的输入。最后,模型的输出是一个特征图,用于后续的视差估计。
具体来说,该模型的第一个阶段包含了两个卷积层和一个残差块,第二个阶段包含了一个卷积层和两个残差块,第三个阶段包含了一个卷积层和一个残差块。其中,每个卷积层都是由一个卷积核、一个批量归一化层和一个激活函数组成的。`make_res_blocks`函数用于创建指定数量的残差块,每个残差块由两个卷积层和一个跳跃连接组成。`conv2d`函数用于创建一个卷积层,`conv2d_bn_act`函数用于创建一个卷积层、一个批量归一化层和一个激活函数。
阅读全文