Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 由于';无法加载#U模型;未知激活功能:LeakyReLU';_Python_Tensorflow_Keras_Neural Network_Relu - Fatal编程技术网

Python 由于';无法加载#U模型;未知激活功能:LeakyReLU';

Python 由于';无法加载#U模型;未知激活功能:LeakyReLU';,python,tensorflow,keras,neural-network,relu,Python,Tensorflow,Keras,Neural Network,Relu,我已经构建、安装并保存了以下模型: import tensorflow as tf from tensorflow import keras from tensorflow.keras import layers from tensorflow.keras import preprocessing from tensorflow.keras.models import Sequential import config from tensorflow.keras import applicatio

我已经构建、安装并保存了以下模型:

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from tensorflow.keras import preprocessing
from tensorflow.keras.models import Sequential
import config
from tensorflow.keras import applications  

model = Sequential()  
model.add(layers.Flatten(input_shape=input_shape.shape[1:]))  
model.add(layers.Dense(100, activation=keras.layers.LeakyReLU(alpha=0.3)))  
model.add(layers.Dropout(0.5))  
model.add(layers.Dense(50, activation=keras.layers.LeakyReLU(alpha=0.3)))  
model.add(layers.Dropout(0.3)) 
model.add(layers.Dense(num_classes, activation='softmax'))
我正在使用load_模型函数进行评估,到目前为止我还没有遇到任何问题,但我现在得到以下错误:

ValueError: Unknown activation function: LeakyReLU
我是否应该对体系结构进行任何语法更改,或者这里是否存在更深层次的问题?如果您有任何建议,我将不胜感激,因为我已经尝试设置一些自定义对象,如下所述:

编辑: 我在调用load_model的文件中的导入如下所示:

import config
import numpy as np
from tensorflow.keras.preprocessing.image import img_to_array, load_img 
from models.create_image_model import make_vgg
import argparse
from tensorflow.keras.models import load_model
import time
from tensorflow import keras
from tensorflow.keras import layers

在保存和加载具有此类“非标准”激活的模型时,似乎存在一些问题,如中所示;最安全的方法似乎是将LeakyReLU作为一个层重新编写模型,而不是作为一个激活:

model = Sequential()  
model.add(layers.Flatten(input_shape=input_shape.shape[1:]))  
model.add(layers.Dense(100)) # no activation here
model.add(layers.LeakyReLU(alpha=0.3)) # activation layer here instead 
model.add(layers.Dropout(0.5))  
model.add(layers.Dense(50)) # no activation here
model.add(layers.LeakyReLU(alpha=0.3))  # activation layer here instead
model.add(layers.Dropout(0.3)) 
model.add(layers.Dense(num_classes, activation='softmax'))

这完全等同于您自己的模型,并且更符合Keras的设计选择——无论好坏,Keras都将LeakyReLU作为一个层,而不是作为一个标准的激活函数。

在保存和加载带有此类“非标准”激活的模型时,似乎存在一些问题,如中所暗示的;最安全的方法似乎是将LeakyReLU作为一个层重新编写模型,而不是作为一个激活:

model = Sequential()  
model.add(layers.Flatten(input_shape=input_shape.shape[1:]))  
model.add(layers.Dense(100)) # no activation here
model.add(layers.LeakyReLU(alpha=0.3)) # activation layer here instead 
model.add(layers.Dropout(0.5))  
model.add(layers.Dense(50)) # no activation here
model.add(layers.LeakyReLU(alpha=0.3))  # activation layer here instead
model.add(layers.Dropout(0.3)) 
model.add(layers.Dense(num_classes, activation='softmax'))

这完全等同于您自己的模型,更符合Keras的设计选择-无论好坏,它都包括LeakyReLU作为一个层,而不是作为标准的激活函数。

您应该将所有相关导入添加到您的问题。@desertnaut我尝试在没有
keras.layers
keras.layers
的情况下添加,结果相同根据我的说法,您已经导入了所有模块。但是你能试着从keras.layers导入LeakyReLU并通过
model.add(layers.Dense(100,activation=LeakyReLU(alpha=0.3)))为添加模型更新
code
为所有模型进行类似的更新。@JayPatel嗨,我会尝试一下,然后回复你。谢谢为了获得更多信息,我在一个单独的文件中构建了我的模型,而不是调用load_model。@desertnaut我将两个文件的导入语句都放在编辑中;我将用于创建模型的导入语句放在相关代码块中。您应该将所有相关导入添加到您的问题中。@desertnaut我尝试在不使用
keras.layers
和使用
keras.layers
的情况下添加,结果相同根据我的说法,您已经导入了所有模块。但是你能试着从keras.layers导入LeakyReLU并通过
model.add(layers.Dense(100,activation=LeakyReLU(alpha=0.3)))为添加模型更新
code
为所有模型进行类似的更新。@JayPatel嗨,我会尝试一下,然后回复你。谢谢为了获得更多信息,我在一个单独的文件中构建了我的模型,而不是调用load_model。@desertnaut我将两个文件的导入语句都放在编辑中;我将用于创建模型的导入语句放在相关的代码块中。