在 IBM Watson 中部署笔记本
Deploy notebook in IBM Watson
我在 IBM Watson Studio 中有一个 python 笔记本用于时间序列预测。
需要两个输入数据
- 最大
- 分钟
并且它 returns 两个数据列表都提前 10 步预测 MAX
和 MIN
。
我想让它可用于外部应用程序。我已经搜索了 API creation 之类的解决方案,但没有找到任何来源。任何人都可以建议我正确的方法或有用的资源吗?
经过2天的研究和尝试,现在我自己的问题得到了解决。没有人给我任何解决方案,所以我认为它会张贴在这里以供将来参考。
在这里,我添加了我的实践经验,所以它可能是一个很长的答案。
1.为什么选择 IBM Notebook?
如果我们需要更多定制,我们会选择笔记本而不是现有型号。我们将获得 built-in 型号
中没有的大部分型号
2。有什么方法吗?
根据我的查询,我找到了两种方法
- 将其部署为 python 函数(对我有效)
- 借助 jupyter notebook、IBM Cloud 和 Github 部署它 tutorial
3。将其部署为 python 函数 [source]
将您的所有功能集中在一个函数中(第 1 步)。就像它需要输入和 returns 输出。
在每次调用中,您在代码中的变量或数据结构都会丢失数据。因此,请避免在您的 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
是一个dictionary
。根据您的需要,您可以添加元素,但请确保您 不更改结构 即,一切都应该在单个根元素下,这里是 values.
输出
300
按照 source 中的(步骤 2),您需要凭据,如果现有凭据有任何问题,请创建一个新凭据因为旧的可能已经过期了。
- 如果您的计划是 Lite,您将无法执行超过 5 个部署(步骤 3)。所以让它计数。如果超出,则通过删除现有服务或删除旧部署来创建新服务。
- 如果您正在创建新服务,请在项目设置中检查它是否与您的项目相关联。否则,凭据将只能在 IBM Watson 中使用,而不是通过 REST API(步骤 4)。
遵循官方文档并保留这些说明以节省您的时间。
我在 IBM Watson Studio 中有一个 python 笔记本用于时间序列预测。
需要两个输入数据
- 最大
- 分钟
并且它 returns 两个数据列表都提前 10 步预测 MAX
和 MIN
。
我想让它可用于外部应用程序。我已经搜索了 API creation 之类的解决方案,但没有找到任何来源。任何人都可以建议我正确的方法或有用的资源吗?
经过2天的研究和尝试,现在我自己的问题得到了解决。没有人给我任何解决方案,所以我认为它会张贴在这里以供将来参考。
在这里,我添加了我的实践经验,所以它可能是一个很长的答案。
1.为什么选择 IBM Notebook?
如果我们需要更多定制,我们会选择笔记本而不是现有型号。我们将获得 built-in 型号
中没有的大部分型号2。有什么方法吗?
根据我的查询,我找到了两种方法
- 将其部署为 python 函数(对我有效)
- 借助 jupyter notebook、IBM Cloud 和 Github 部署它 tutorial
3。将其部署为 python 函数 [source]
将您的所有功能集中在一个函数中(第 1 步)。就像它需要输入和 returns 输出。
在每次调用中,您在代码中的变量或数据结构都会丢失数据。因此,请避免在您的 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
是一个dictionary
。根据您的需要,您可以添加元素,但请确保您 不更改结构 即,一切都应该在单个根元素下,这里是 values.输出
300
按照 source 中的(步骤 2),您需要凭据,如果现有凭据有任何问题,请创建一个新凭据因为旧的可能已经过期了。
- 如果您的计划是 Lite,您将无法执行超过 5 个部署(步骤 3)。所以让它计数。如果超出,则通过删除现有服务或删除旧部署来创建新服务。
- 如果您正在创建新服务,请在项目设置中检查它是否与您的项目相关联。否则,凭据将只能在 IBM Watson 中使用,而不是通过 REST API(步骤 4)。
遵循官方文档并保留这些说明以节省您的时间。