【问题标题】:SageMaker Predictor only outputs 0 and 1, i need the float between 0 and 1SageMaker Predictor 只输出 0 和 1,我需要 0 和 1 之间的浮点数
【发布时间】:2020-09-17 03:33:11
【问题描述】:

我已经在 Amazon SageMaker 上使用以下架构训练了一个 TensorFlow 模型:

_, timesteps, features = X_train.shape
ACTIVATION = 'relu'
EPOCHS = 50
model = Sequential()
model.add(Masking(mask_value=np.nan, input_shape=(timesteps, features)))
model.add(LSTM(64, activation=ACTIVATION, return_sequences=True))
model.add(LSTM(64, activation=ACTIVATION, return_sequences=True))
model.add(LSTM(64, activation=ACTIVATION))
model.add(BatchNormalization())
model.add(Dense(64, activation=ACTIVATION))
model.add(Dense(64, activation=ACTIVATION))
model.add(Dense(64, activation=ACTIVATION))
model.add(BatchNormalization())
model.add(Dropout(0.1))
model.add(Dense(64, activation=ACTIVATION))
model.add(Dense(1, activation='sigmoid'))

adam_low = Adam(learning_rate = 0.0001)

model.compile(optimizer=adam_low,
              loss='binary_crossentropy',
              metrics=['accuracy'])

如果我在本地机器上训练它并进行预测,它将输出 0 到 1 之间的浮点数。

但是,当我使用带有 TensorFlow 容器的 SageMaker 训练相同的架构时,在端点上部署保存的模型并调用 prediction = predictor.predict(x_predict) 后,输出总是只有 0 或 1。有没有办法强制预测输出 0-1 浮点数?

【问题讨论】:

    标签: tensorflow amazon-sagemaker


    【解决方案1】:

    预测器不会对输出数据进行任何处理,只是使用您选择的反序列化器对其进行反序列化。有几件事我会尝试调试这个

    1、从 S3 下载训练好的模型,做一些局部预测,确保模型训练正确。 2、直接使用boto3或aws cli向sagemaker端点发出一些预测请求,无需SageMaker Python SDK。

    【讨论】:

      猜你喜欢
      • 2016-06-19
      • 1970-01-01
      • 2014-09-22
      • 1970-01-01
      • 2019-12-20
      • 2011-07-07
      • 2012-12-17
      相关资源
      最近更新 更多