【发布时间】:2021-08-23 03:10:24
【问题描述】:
我想通过 Tensorflow 使用 Coco Dataset 2014 重新训练 MaskRCNN 模型。
我在 MaskRCNN 中按层的名称修剪了一些层,并想重新训练它。
我的情况是,在修剪 MaskRCNN 之后,当我试图为修剪后的模型添加损失时,
导致 ValueError: Layers could not be added due to missing dependencies.
我使用的代码是这样的:
loss_names = [
"rpn_class_loss", "rpn_bbox_loss",
"mrcnn_class_loss", "mrcnn_bbox_loss", "mrcnn_mask_loss"]
for name in loss_names:
layer = model_for_pruning.get_layer(name)
if layer.output in model_for_pruning.losses:
continue
loss = (tf.reduce_mean(input_tensor=layer.output, keepdims=True)
*config.LOSS_WEIGHTS.get(name, 1.))
model_for_pruning.add_loss(loss)
我得到了这样的 ValueError:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-43-542261a0e37d> in <module>
9 loss = (tf.reduce_mean(input_tensor=layer.output, keepdims=True)
10 *config.LOSS_WEIGHTS.get(name, 1.))
---> 11 model_for_pruning.add_loss(loss)
~\.conda\envs\maskrcnn\lib\site-packages\tensorflow_core\python\keras\engine\base_layer.py in add_loss(self, losses, inputs)
1079 for symbolic_loss in symbolic_losses:
1080 if getattr(self, '_is_graph_network', False):
-> 1081 self._graph_network_add_loss(symbolic_loss)
1082 else:
1083 # Possible a loss was added in a Layer's `build`.
~\.conda\envs\maskrcnn\lib\site-packages\tensorflow_core\python\keras\engine\network.py in _graph_network_add_loss(self, symbolic_loss)
1482 new_nodes.extend(add_loss_layer.inbound_nodes)
1483 new_layers.append(add_loss_layer)
-> 1484 self._insert_layers(new_layers, new_nodes)
1485
1486 def _graph_network_add_metric(self, value, aggregation, name):
~\.conda\envs\maskrcnn\lib\site-packages\tensorflow_core\python\keras\engine\network.py in _insert_layers(self, layers, relevant_nodes)
1421 # are being relied on.
1422 if i > 10000:
-> 1423 raise ValueError('Layers could not be added due to missing '
1424 'dependencies.')
1425
ValueError: Layers could not be added due to missing dependencies.
如果,这个错误与 GPU 内存大小有关,这些 Coco Dataset 需要多少内存,还有其他方法可以用 12 GB GPU 内存大小进行训练。
感谢您的建议。 :D
【问题讨论】:
-
这个问题你解决了吗?
-
是的,我刚换了24GB内存的GPU
标签: python python-3.x tensorflow keras deep-learning