我在 IBM Watson Studio 中有一个 python 笔记本用于时间序列预测。
需要两个输入数据
- 最大
- 分钟
它返回两个数据列表,其中包含 MAX
和 MIN
的 10 步预测。
我想让它可用于外部应用程序。我已经搜索了 API 创建之类的解决方案,但没有找到任何来源。任何人都可以建议我正确的方法或有用的资源吗?
最佳答案
现在通过我2天的研究和尝试,我得到了自己问题的解决方案。没有人给我任何解决方案,所以我认为它会张贴在这里以供将来引用。
在这里,我添加了我的实践经验,所以它可能是一个很长的答案。
<强>1。为什么选择 IBM Notebook?
如果我们需要更多定制,我们会选择笔记本而不是现有型号。我们将获得大部分内置模型中没有的模型
<强>2。如何做到这一点?
根据我的查询,我找到了两种方法来做到这一点
- 将其部署为 python 函数(对我有用)
- 在 jupyter notebook、IBM Cloud 和 Github 的帮助下部署它 请参阅此 tutorial
<强>3。将其部署为 python 函数 [source]
将您的所有功能封装在一个函数中(第 1 步)。就像它接受输入并返回输出一样。
在每次调用中,您在代码中拥有的变量或数据结构都会丢失数据。因此,请避免在您的 Python 函数中使用这些项目,并在您的应用程序中对其进行管理。
另一个重要的一点是,如果你想导入库,你必须将它作为一个子进程包含在主函数中,因为测试环境和部署环境是不同的。你可以通过像这样简单地添加来做到这一点
示例格式 python 函数
def my_deployable_function(): import subprocess subprocess.check_output( "pip install ipython--user",stderr=subprocess.STDOUT,shell=True ) def score( payload ): num1=int(payload["values"][0]) num2=int(payload["values"][1]) ans=num1+num2 return ans
*此处,
payload
是您从 API 传递给 python 函数的数据,ans
是输出测试功能
function_result = my_deployable_function()( { "values" : [ 100,200] } ) print( function_result )
*输入
payload
是一个字典
。根据您的需要,您可以添加元素,但要确保您没有更改结构,即,一切都应该在一个根元素下,这里是值。输出
300
按照 source 中的(第 2 步)操作您需要凭据,如果现有凭据有任何问题,请创建一个新凭据,因为旧凭据可能已过期。
- 如果您的计划是 Lite,您将无法执行超过 5 次部署(第 3 步)。所以让它计数。如果超出,则通过删除现有服务或删除旧部署来创建新服务。
- 如果您要创建新服务,请在项目设置中检查它是否与您的项目相关联。否则,凭据将只能在 IBM Watson 中使用,而不是通过 REST API(第 4 步)。
遵循官方文档并保留这些说明以节省您的时间。
关于python - 在 IBM Watson 中部署笔记本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56006281/