AttributeError:模块“tensorflow.python.keras.api._v2.keras.backend”没有属性“set_image_dim_ordering”

J.c*_*ump 5 python-3.x keras tensorflow

最近尝试使用python运行github上的一段代码。代码位于: https: //github.com/costapt/vess2ret \n并且我使用了以下软件

\n\n

TensorFlow-gpu-2.0-beta1\nKeras:2.2.4\n操作系统:Windows 10\npython:3.5\nCUDA:10.0\ncuDNN:10.0

\n\n

我遇到了网上一些人已经提出的同样的问题。即:\nAttributeError: module \'tensorflow\' has no attribute \'get_default_graph\'\n在我尝试将代码更改为以下内容之后

\n\n

从 keras 导入后端

\n\n

改成:

\n\n

从tensorflow.keras导入后端

\n\n

我遇到了另一个问题。即\xef\xbc\x9a\nAttributeError: module \'tensorflow.python.keras.api._v2.keras.backend\' has no attribute \'set_image_dim_ordering\'

\n\n

我现在不知道该怎么办

\n\n
#Here are some codes which are related to the problem above.\n\nimport os\nimport keras\nfrom tensorflow.keras import backend as K\nfrom keras import objectives\nfrom keras.layers import Input, merge\nfrom keras.layers.advanced_activations import LeakyReLU\nfrom keras.layers.convolutional import Convolution2D, Deconvolution2D\nfrom keras.layers.core import Activation, Dropout\nfrom keras.layers.normalization import BatchNormalization\nfrom keras.models import Model\nfrom keras.optimizers import Adam\n\nKERAS_2 = keras.__version__[0] == \'2\'\ntry:\n    # keras 2 imports\n    from keras.layers.convolutional import Conv2DTranspose\n    from keras.layers.merge import Concatenate\nexcept ImportError:\n    print("keras 2 layers could not be imported defaulting to keras1")\n    KERAS_2 = False\n\nK.set_image_dim_ordering(\'th\') #here is where the problem occurs at\n\n#The first problem.\nTraceback (most recent call last):\n  File "C:\\zzProject_ML\\vess2ret-master\\train.py", line 326, in <module>\n    batch_size=params.batch_size, is_binary=params.is_b_binary)\n  File "C:\\zzProject_ML\\vess2ret-master\\models.py", line 378, in g_unet\n    i = Input(shape=(in_ch, 512, 512))\n  File "C:\\Users\\10580\\Anaconda3\\envs\\project_ML\\lib\\site-packages\\keras\\engine\\input_layer.py", line 178, in Input\n    input_tensor=tensor)\n  File "C:\\Users\\10580\\Anaconda3\\envs\\project_ML\\lib\\site-packages\\keras\\legacy\\interfaces.py", line 91, in wrapper\n    return func(*args, **kwargs)\n  File "C:\\Users\\10580\\Anaconda3\\envs\\project_ML\\lib\\site-packages\\keras\\engine\\input_layer.py", line 39, in __init__\n    name = prefix + \'_\' + str(K.get_uid(prefix))\n  File "C:\\Users\\10580\\Anaconda3\\envs\\project_ML\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py", line 74, in get_uid\n    graph = tf.get_default_graph()\nAttributeError: module \'tensorflow\' has no attribute \'get_default_graph\'\n\n#The second problem.\nUsing TensorFlow backend.\nTraceback (most recent call last):\n  File "C:\\zzProject_ML\\vess2ret-master\\train.py", line 7, in <module>\n    import models as m\n  File "C:\\zzProject_ML\\vess2ret-master\\models.py", line 25, in <module>\n    K.set_image_dim_ordering(\'th\')\nAttributeError: module \'tensorflow.python.keras.api._v2.keras.backend\' has no attribute \'set_image_dim_ordering\'\n
Run Code Online (Sandbox Code Playgroud)\n

Mat*_*gro 7

您正在混合导入tf.keraskeras(它们不兼容),并且 keras 目前不支持tensorflow 2.0(尚未发布稳定版本)。

如果您必须使用tensorflow 2.0,那么您必须使用tf.keras该版本中包含的内容。如果你想使用keras,那么你需要降级到稳定的tensorflow版本。