想问下关于python的keras里normalize_data_format

我的keras版本是2.4.3

在别人github里git了代码https://github.com/titu1994/DenseNet

但是我在用到

from keras.utils.conv_utils import normalize_data_format

这段代码时候显示报错cannot import name 'normalize_data_format' from 'keras.utils.conv_utils'

查了下,网上说可以将代码替换为from keras.backend.common import normalize_data_format

但是这段则显示这段代码显示报错ModuleNotFoundError: No module named 'keras.backend.common'; 'keras.backend' is not a package

迫于某些原因,我不太敢更改keras版本,我想问下各位大佬有没有什么办法找到我这个版本keras库normalize_data_format这个方法位置,关于库的相关运用我很菜,找了下自己Anaconda3\Lib\site-packages\tensorflow\keras\backend里的init文件看不出来。

请问楼主解决了吗?我遇到了同样的问题,keras版本也是2.4.3

参考一下https://blog.csdn.net/u014734886/article/details/90050571

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y

请问楼主解决了吗!我也是这个问题,改了还是弹出cannot import name 'normalize_data_format' from 'keras.backend'

chatgtp搜索结果:
在keras=2.4.3中,normalize_data_format已经被弃用。相反,您可以使用Keras后端(如TensorFlow或Theano)的默认常量K,以便根据当前的数据格式对输入数据进行归一化。例如,如果您想对输入张量进行归一化,可以使用以下代码:

from keras import backend as K

input_tensor = ...
if K.image_data_format() == 'channels_first':
    # normalize input data_format
    input_tensor = K.normalize_batch_in_training(input_tensor, mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], axis=1)
else:
    # normalize input data_format
    input_tensor = K.normalize_batch_in_training(input_tensor, mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], axis=3)

这里,我们首先获得当前数据格式的值(channels_first或channels_last),然后使用Keras后端的normalize_batch_in_training方法对输入张量进行标准化。注意,您需要提供一个由每个通道的平均值和标准差组成的列表。

请注意,如果您使用图像数据,可以将mean和std设置为ImageNet的平均值和标准差,以获取更好的结果:

# ImageNet means and stds
mean = [0.485, 0.456, 0.406]
std = [0.229, 0.224, 0.225]

input_tensor = ...
if K.image_data_format() == 'channels_first':
    # normalize input data_format
    input_tensor = K.normalize_batch_in_training(input_tensor, mean=mean, std=std, axis=1)
else:
    # normalize input data_format
    input_tensor = K.normalize_batch_in_training(input_tensor, mean=mean, std=std, axis=3)

这将确保输入数据在使用预先训练的模型时符合预期的标准,将有助于获得更好的结果。