Tensorflow 模型部署后调用端点:[Err 104]对等方重置连接

Tensorflow 模型部署后调用端点:[Err 104]对等方重置连接,tensorflow,amazon-sagemaker,Tensorflow,Amazon Sagemaker,我是Sagemaker的新手。我已经使用Json和权重文件在tensorflow中部署了我训练有素的模型。但奇怪的是,在我的笔记本中,我没有看到上面写着“端点成功构建”。仅显示以下内容: --------------------------------------------------------------------------------! 相反,我从控制台中找到了端点号 import sagemaker from sagemaker.tensorflow.model import T

我是Sagemaker的新手。我已经使用Json和权重文件在tensorflow中部署了我训练有素的模型。但奇怪的是,在我的笔记本中,我没有看到上面写着“端点成功构建”。仅显示以下内容:

--------------------------------------------------------------------------------!
相反,我从控制台中找到了端点号

import sagemaker
from sagemaker.tensorflow.model import TensorFlowModel
        predictor=sagemaker.tensorflow.model.TensorFlowPredictor(endpoint_name, sagemaker_session)
data= test_out2
predictor.predict(data)
然后,我尝试使用2D数组调用端点: (1) 如果我的2D数组的大小为(5000170),我将得到以下错误:

ConnectionResetError: [Errno 104] Connection reset by peer
(2) 如果将阵列减小到(10170)的大小,则错误为:

ModelError: An error occurred (ModelError) when calling the InvokeEndpoint operation: Received server error (500) from model with message "". See https://us-east-2.console.aws.amazon.com/cloudwatch/home?region=us-east-2#logEventViewer:group=/aws/sagemaker/Endpoints/sagemaker-tensorflow-2019-04-28-XXXXXXXXX in account 15XXXXXXXX for more information.
有什么建议吗?在github中发现类似情况

请问是类似的情况吗


提前非常感谢

数据大小的第一个错误(5000170)可能是由于容量问题。SageMaker端点预测的大小限制为5mb。因此,如果您的数据大于5mb,则需要将其切碎并多次调用predict


对于数据大小的第二个错误(10170),错误消息要求您查看日志。你在cloudwatch日志中发现什么有趣的东西了吗?这个问题有什么可以分享的吗?

我遇到了这个问题,这篇文章帮助我解决了这个问题。预测器将采用的数据集大小似乎有限制。我不确定它是什么,但在任何情况下,我现在以不同的方式分割我的训练/测试数据

我假设存在一个限制,该限制基于原始数据量。粗略地说,这将转化为我的数据帧中的单元格数量,因为每个单元格可能是整数或浮点

如果我可以得到70%/30%的分割,我会使用它,但是如果30%的测试数据超过了最大单元格数,我会分割数据,以获得适合最大单元格数的最大行数

以下是拆分代码:

# Check that the test data isn't too big for the predictor
max_test_cells = 200000
model_rows, model_cols = model_data.shape
print('model_data.shape=', model_data.shape)
max_test_rows = int(max_test_cells / model_cols)
print('max_test_rows=', max_test_rows)
test_rows = min(int(0.3 * len(model_data)), max_test_rows)
print('actual_test_rows=', test_rows)
training_rows = model_rows - test_rows
print('training_rows=', training_rows)

# Split the data to get the largest test set possible
train_data, test_data = np.split(model_data.sample(frac=1, random_state=1729), [training_rows])
print(train_data.shape, test_data.shape)

你好非常感谢您的回复。我已经修复了这个bug,现在模型正在为2D数组(3000175)的大小进行输入,但在(5000175)的大小时失败。许多ppl在线表示,这是由于Sagemaker的5MB限制。是这样吗?有什么解决办法吗?该模型经过良好的训练,不容易将其分割成碎片并进行预测。非常感谢!通过批量发送输入,现在可以工作了。再次感谢!