首页 > 解决方案 > 从 keras 外科医生那里去除层的问题

问题描述

我正在尝试使用 kerassurgeon 删除一个图层,但是我遇到了问题,我尝试了不同的方法,但都没有工作。

# delete layer_1 from a model
from kerassurgeon import Surgeon
surgeon = Surgeon(vgg_model)
surgeon.add_job('delete_layer', layer_1)
new_model = surgeon.operate()

错误

 NameError Traceback (most recent call last)
 <ipython-input-9-dabc597cba5b> in <module>()
  2 from kerassurgeon import Surgeon
  3 surgeon = Surgeon(vgg_model)
->4 surgeon.add_job('delete_layer', layer_1)
  5 new_model = surgeon.operate()
  NameError: name 'layer_1' is not defined


  from kerassurgeon.operations import delete_layer
  # delete layer_1 from a model
  model = delete_layer(vgg_model, layer_1)

错误

   1 from kerassurgeon.operations import delete_layer
   2 # delete layer_1 from a model
 ->3 model = delete_layer(vgg_model, layer_1)
  NameError: name 'layer_1' is not defined

  # or kerassurgeon for standalone Keras
  from tfkerassurgeon import delete_layer
  model = delete_layer(vgg_model.layers[0])

错误

   1 # or kerassurgeon for standalone Keras
-> 2 from tfkerassurgeon import delete_layer, insert_layer
   3 
   4 model = delete_layer(vgg_model.layers[0])
   ImportError: cannot import name 'delete_layer' from 'tfkerassurgeon' (/usr/local/lib/python3.7/dist-packages/tfkerassurgeon/__init__.py)

标签: tensorflowmachine-learningkeraspruning

解决方案


我也遇到了这个问题,但是我检查了 GitHub(https://github.com/BenWhetton/keras-surgeon),只是改变

这个:

from kerassurgeon import delete_layer, insert_layer

至:

from kerassurgeon.operations import delete_layer, insert_layer

为了防止模块导入错误,我建议下载每个包在原始网站或 GitHub 中的编写方式,自述文件。


推荐阅读