python - TensorFlow 2 中 Densenet 密集块的 TypeError
问题描述
我正在尝试在 tensorflow 中实现 Densenet。我想使用子类化 API 重写这个版本的 DenseNet ,但是我收到了这个错误:
TypeError: Tensors in list passed to 'values' of 'ConcatV2' Op have types [float32, <NOT CONVERTIBLE TO TENSOR>] that don't all match.
所以我想问题出在我的 DenseBlock 中,我使用 Concat
class DenseBlock(Layer):
def __init__(self, nb_layers, nb_filter, growth_rate, dropout_rate=None, grow_nb_filters=True, **kwargs):
super(DenseBlock, self).__init__(**kwargs)
self.nb_layers = nb_layers
self.growth_rate =growth_rate
self.nb_filter = nb_filter
self.grow_nb_filters = grow_nb_filters
self.conv_blocks = [ConvBlock(growth_rate, dropout_rate) for i in range(nb_layers)]
def call(self, inputs):
concat_feat = tf.cast(inputs, dtype=tf.float32)
for conv in self.conv_blocks:
x = conv
concat_feat = tf.concat([concat_feat, x], -1)
if self.grow_nb_filters:
self.nb_filter += self.growth_rate
return concat_feat, self.nb_filter
作为最后的手段,我尝试用 tf.keras.layer.concatenate() 替换,但出现 NoneType 错误。
我希望这不是重复的问题,但我只发现了与 LSTM 中的屏蔽相关的相同错误。这是我认为是错误的地方,但我也想提供我的笔记本以提供更多信息笔记本 提前感谢您的帮助
解决方案
推荐阅读
- r - 杂货数据集:仅包含 n 个项目的列表交易
- c# - 捕获重复键异常并继续插入
- javascript - 如何在反应中生成唯一 ID。js组件
- oop - Dart - 未定义设置方法
- python - Python XML ElementTree - findall
- php - 致命错误:允许的内存大小为 268435456 字节已用尽(尝试分配 132120600 字节)
- scala - 如何根据提供的 scala 版本告诉 sbt 需要编译哪个包
- python - 使用管理面板时,ModelBackend 身份验证未收到凭据
- python - 多处理 Dask Pymongo
- r - 如何向已执行的 R 函数添加参数?