导入错误:无法从 'keras.layers' 导入名称 'Deconvolution3D' (/home/mona/venv/fall/lib/python3.8/site-packages/keras/layers/__init__.py)

问题描述

我应该如何修复以下错误

ImportError: cannot import name 'Deconvolution3D' from 'keras.layers' (/home/mona/venv/fall/lib/python3.8/site-packages/keras/layers/__init__.py)

我明白了:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-14-8ac95d90a6a0> in <module>
      4 import config
      5 from trainer.fusiondiffroigan import Params,Fusion_Diff_ROI_3DCAE_GAN3D
----> 6 from models import diff_ROI_C3D_AE_no_pool

~/research/code/GAN-fall/Fall-detection/mrfd/models.py in <module>
      5 from keras.layers import Activation,Dropout,Flatten,Dense,Input,Reshape,Batchnormalization
      6 # from keras.layers import Conv3DTranspose as Deconvolution3D
----> 7 from keras.layers import Deconvolution3D
      8 from keras.optimizers import SGD
      9 from keras import regularizers

ImportError: cannot import name 'Deconvolution3D' from 'keras.layers' (/home/mona/venv/fall/lib/python3.8/site-packages/keras/layers/__init__.py)

我有

Python 3.8.5 (default,Jan 27 2021,15:41:15) 
[GCC 9.3.0] on Linux

$ lsb_release -a
LSB Version:    core-11.1.0ubuntu2-noarch:security-11.1.0ubuntu2-noarch
distributor ID: Ubuntu
Description:    Ubuntu 20.04.2 LTS
Release:    20.04
Codename:   focal

解决方法

实际上,在 TensorFlow 2 上,Deconvolution3D 已重命名为 Conv3DTranspose。
所以你可以使用:

from tensorflow.keras.layers import Conv3DTranspose

所以我们现在有了一个清洁器:

  • Conv2D 及其“反向”Conv2DTranspose
  • Conv3D 及其“反向”Conv3DTranspose
,

试试这个

import tensorflow as tf
from tensorflow.keras.layers import Deconvolution3D