Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.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 TensorFlow 2:是否正在保存已保存的模型?_Python_Tensorflow_Machine Learning_Tensorflow2.0_Tensorflow Serving - Fatal编程技术网

Python TensorFlow 2:是否正在保存已保存的模型?

Python TensorFlow 2:是否正在保存已保存的模型?,python,tensorflow,machine-learning,tensorflow2.0,tensorflow-serving,Python,Tensorflow,Machine Learning,Tensorflow2.0,Tensorflow Serving,我正在尝试加载以格式保存的模型,然后在其上应用一些计算并重新保存整个管道。最低限度的代码如下(从): #加载模型。在此之后,“delg_模型”将是 #`tensorflow.python.training.tracking.tracking.AutoTrackable` delg_model=tf.saved_model.load('path/to/saved/model/dir')) #我们不需要整个模型,所以我们删减它。在那之后 #`global_feature_extraction_fn`

我正在尝试加载以格式保存的模型,然后在其上应用一些计算并重新保存整个管道。最低限度的代码如下(从):

#加载模型。在此之后,“delg_模型”将是
#`tensorflow.python.training.tracking.tracking.AutoTrackable`
delg_model=tf.saved_model.load('path/to/saved/model/dir'))
#我们不需要整个模型,所以我们删减它。在那之后
#`global_feature_extraction_fn`将属于以下类型
#`tensorflow.python.eager.wrap_function.WrappedFunction`
delg_输入_张量_名称=['input_图像:0','input_比例:0']
全局\u特征\u提取\u fn=delg\u model.prune(
delg_输入_张量_名称,['global_描述符:0'])
问题:现在,我想以相同的SavedModel格式保存
全局特征提取fn
,并使用其他TF操作对输出进行后期处理。正确的方法是什么


我试过的 我试图遵循TensorFlow文档并定义一个
tf.模块

类增量模块(tf.Module):
定义初始化(自):
super()。\uuuu init\uuuuu()
@tf.函数(输入\签名=[
tf.TensorSpec(shape=[None,None,3],name='input\u image')
])
def调用(自、输入张量):
#模型输出上的自定义函数
嵌入=tf.nn.l2_规范化(
全局特征提取(
输入张量,#输入图像
tf.将_转换为_张量([0.7,1.0,1.4])#输入_标度
)[0],
轴=1,名称='l2\u规格化\u输出')
返回输出张量={
“全局描述符”:嵌入
}
delg_模块=DelgModule()
然后我在测试图像上运行它来构建
tf.function
,并确保它正常工作(生成正确的输出)。但当我试图将其保存为以下内容时:

tf.saved\u model.save(
delg_模块,导出目录='。/delg_重新保存',
签名={
'SERVICED_default':delg_module.call
})
由此产生的模型是不正确的。原来的一个重达90MB,而重新保存的
delg_中的一个重达800KB。我还尝试在
DelgModule.call
函数内部执行
tf.saved\u model.load
,这样图形创建和变量加载就完全在
tf.function
内部完成,但结果保持不变