Tensorflow 负载模型作为输入层,整个模型没有任何细节

Tensorflow 负载模型作为输入层,整个模型没有任何细节,tensorflow,keras,deep-learning,neural-network,conv-neural-network,Tensorflow,Keras,Deep Learning,Neural Network,Conv Neural Network,如果有人能帮我解决问题,我将不胜感激。我训练并保存了一个模型。然后,我想再次加载它并使其无法训练。但是,当我加载它时,它只显示一个输入层加上作为子集的模型。以下是我的总结: _________________________________________________________________ Layer (type) Output Shape Param # ===============================

如果有人能帮我解决问题,我将不胜感激。我训练并保存了一个模型。然后,我想再次加载它并使其无法训练。但是,当我加载它时,它只显示一个输入层加上作为子集的模型。以下是我的总结:

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_1 (InputLayer)         [(None, 9)]               0         
_________________________________________________________________
FORWARD (Model)              (None, 65, 6)             459486    
=================================================================
Total params: 459,486
Trainable params: 459,486
Non-trainable params: 0
_________________________________________________________________
这是我加载时的代码部分:

if trained_model_path is not None:
    model = tf.keras.models.load_model(trained_model_path,
                                       custom_objects={'BilinearUpsampling1D':BilinearUpsampling1D})
    model.trainable = False
首先,我想知道为什么我没有使用简单的model\u save命令保存的加载模型的详细摘要

其次,当我将变量设置为不可训练时,它将在摘要中显示,我有两倍数量的参数,其中一半是可训练的,另一半不是如下所示:

_________________________________________________________________
Model: "model"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_1 (InputLayer)         [(None, 9)]               0         
_________________________________________________________________
FORWARD (Model)              (None, 65, 6)             459486    
=================================================================
Total params: 918,972
Trainable params: 459,486
Non-trainable params: 459,486
_________________________________________________________________
我相信这是因为我的加载模型是原始模型的一个子模型。但是,我不知道。如果有人能在这方面帮助我,请告诉我

非常感谢你。 问候,


另外,我正在使用tensorflow 2。

不确定这是否是令人信服的解决方法,但如果我们在
model.trainable=False
之后使用
model.compile()
,它将显示正确的参数总数

请在下面查找工作代码:

!pip install tensorflow==2.1

import tensorflow as tf

from zipfile import ZipFile
zip_file = ZipFile('Resume_Classification_Model.zip', 'r')
zip_file.extractall('Resume_Classification_Model')

New_Model = tf.keras.models.load_model("Resume_Classification_Model/Resume_Classification_Model/1")

New_Model.summary()

New_Model = tf.keras.models.load_model("Resume_Classification_Model/Resume_Classification_Model/1")

New_Model.trainable= False

New_Model.compile()

# Now, observe the Total Number of Parameters
New_Model.summary()

要保持更新,您可以参考此信息。

不确定这是否是令人信服的解决方法,但如果我们使用
model.compile()
model.trainable=False
之后,它将显示正确的参数总数

请在下面查找工作代码:

!pip install tensorflow==2.1

import tensorflow as tf

from zipfile import ZipFile
zip_file = ZipFile('Resume_Classification_Model.zip', 'r')
zip_file.extractall('Resume_Classification_Model')

New_Model = tf.keras.models.load_model("Resume_Classification_Model/Resume_Classification_Model/1")

New_Model.summary()

New_Model = tf.keras.models.load_model("Resume_Classification_Model/Resume_Classification_Model/1")

New_Model.trainable= False

New_Model.compile()

# Now, observe the Total Number of Parameters
New_Model.summary()

要了解最新信息,您可以参考此信息。

我刚刚解决了有关型号的问题。现在,当我说model.summary()时,它详细地显示了所有内容。但是,当我想停用训练时,我会得到以下信息:Total params:918972可训练参数:459486不可训练参数:459486而不是:Total params:459486可训练参数:0不可训练参数:459486这听起来像个Bug。我已经在Github中提交了一个问题。我刚刚修复了关于我的模型的问题。现在,当我说model.summary()时,它详细地显示了所有内容。但是,当我想停用训练时,我会得到以下信息:Total params:918972可训练参数:459486不可训练参数:459486而不是:Total params:459486可训练参数:0不可训练参数:459486这听起来像个Bug。我已经在Github中提交了一个问题。