我在使用InceptionV4 出現以下錯誤
我的keras tensorflow版本是2.5.0
module 'keras.backend' has no attribute 'unique_object_name'
File "C:\Labbb\inception\model_1.py", line 28, in conv_block
x = BatchNormalization(axis=-1, momentum=0.9997, scale=False)(x)
File "C:\Labbb\inception\model_1.py", line 35, in stem
x = conv_block(x_input, 32, 3, 3, strides=(2, 2), padding='valid')
File "C:\Labbb\inception\model_1.py", line 167, in inception_v4_backbone
x = stem(x_input) # 35 x 35 x 384
File "C:\Labbb\inception\main.py", line 105, in <module>
model = inception_v4_backbone(n_classes, load_weights=False)
AttributeError: module 'keras.backend' has no attribute 'unique_object_name'
我有添加 "tensorflow." 來嘗試解決問題,他解決了"get_default_graph"這個報錯,但是 'unique_object_name'這個報錯沒有解決
import tensorflow as ts
from tensorflow.keras.layers import Input
from keras.layers.merge import concatenate
from tensorflow.keras.layers import Dense, Dropout, Flatten, Activation, Conv2D
from keras.layers.convolutional import MaxPooling2D, AveragePooling2D
from keras.layers.normalization import BatchNormalization
from tensorflow.keras import backend as K
from keras.models import Model
from tensorflow.keras.utils import plot_model
def conv_block(x, nb_filters, nb_row, nb_col, strides=(1, 1), padding='same', use_bias=False):
global CONV_BLOCK_COUNT
CONV_BLOCK_COUNT += 1
with K.name_scope('conv_block_'+str(CONV_BLOCK_COUNT)):
x = Conv2D(filters=nb_filters,
kernel_size=(nb_row, nb_col),
strides=strides,
padding=padding,
use_bias=use_bias)(x)
x = BatchNormalization(axis=-1, momentum=0.9997, scale=False)(x) #error message
x = Activation("relu")(x)
return x
有沒有除了降版以外的方法來使用這個InceptionV4 model,或是有其他是使用2.5板來實現InceptionV4的文章可以幫助我解決問題
希望不要再是把問題丟入chat gpt之類的來回答 感謝
根据您提供的信息,您遇到的错误是关于 'unique_object_name' 属性的问题。这可能是由于您使用的 TensorFlow 或 Keras 版本与 InceptionV4 模型不兼容引起的。
解决此问题的一种方法是升级您的 TensorFlow 和 Keras 版本。根据您的描述,您使用的是 TensorFlow 2.5.0 和 Keras 2.5。可以尝试将 TensorFlow 和 Keras 版本升级到最新版本。您可以通过以下命令安装最新版本的:
pip install tensorflow
pip install keras
然后,重新运行您的代码,查看是否仍然存在该错误。
如果您不想升级库版本,也可以尝试使用较旧的 InceptionV4 模型版本,该版本可能与您的库版本兼容。您可以尝试查找与您的 TensorFlow 和 Keras 版本兼容的 InceptionV4 模型版本,并将其替换为您当前使用的模型。
另外,请确保您的代码中导入的库和模块正确,并且按照正确的顺序进行导入。在您的提供的的代码中,BatchNormalization 层的导入是在 stem 函数内部,这可能导致错误。请将 BatchNormalization 的导入移到模型定义之前,以确保正确导入。
希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多信息,以便我能够更好地帮助您。