首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sagemaker Neo编译模型给出的结果与实际的keras模型略有不同

Sagemaker Neo编译模型给出的结果与实际的keras模型略有不同
EN

Stack Overflow用户
提问于 2021-02-23 17:33:17
回答 1查看 82关注 0票数 2

我创建了一个简单的Keras回归模型,并对其进行了训练,然后将其保存为h5格式。然后为了在greengrass上部署,我使用neo编译了这个模型,然后使用lamda函数进行了部署和推断。最终的预测结果与实际keras模型的预测结果略有不同。

型号:

代码语言:javascript
复制
import pandas as pd
from keras.models import Sequential
from keras.layers import *

model = Sequential()
model.add(Dense(50, input_dim=9, activation='relu'))
model.add(Dense(100, activation='relu'))
model.add(Dense(50, activation='relu'))
model.add(Dense(1, activation='linear'))
model.compile(loss='mean_squared_error', optimizer='adam')

这是一种预期的行为吗?

EN

回答 1

Stack Overflow用户

发布于 2021-02-24 12:37:18

这是因为您保存Keras模型的方式。这是一个常见的问题。如果您未手动指定tf.global_variables_initializer,则Keras将运行它,因此这意味着当您尝试保存模型时,它将首先重新初始化所有权重。

为了防止出现这种情况,在Keras中,可以在训练模型之前在Tensorflow后端设置_MANUAL_VAR_INIT标志:

代码语言:javascript
复制
from keras.backend import manual_variable_initialization
manual_variable_initialization(True)

这样做之后,使用Neo和您的Keras模型的结果应该是一致的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66330493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档