Развертывание ноутбука в IBM Watson - PullRequest
2 голосов
/ 06 мая 2019

У меня есть ноутбук Python в IBM Watson Studio для целей прогнозирования временных рядов.

требуется два входных данных

  1. MAX
  2. MIN

и возвращает два списка данных с прогнозированием на 10 шагов вперед MAX и MIN.

Я хочу сделать его доступным для внешнего приложения. Я искал решение, такое как создание API, но не получил никакого источника. Может кто-нибудь предложить мне правильный способ или полезные ресурсы для этого?

1 Ответ

0 голосов
/ 09 мая 2019

Теперь я получил решение своего собственного вопроса через 2 дня исследований и попыток. Никто не дал мне никакого решения, поэтому я подумал, что оно будет опубликовано здесь для будущих ссылок.

Здесь я добавил свой практический опыт, чтобы он мог быть длинным ответом.

1. Почему IBM Notebook?

Мы выбираем ноутбук вместо доступных моделей, если нам нужно больше настроек. мы получим большинство моделей, которые недоступны во встроенных моделях

2. Как это сделать?

Согласно моему запросу, я нашел два способа сделать это

  • Развернуть его как функцию Python ( Работает для меня )
  • Разверните его с помощью ноутбука Jupyter, IBM Cloud и Github. Прочтите это руководство

3. Разверните его как функцию Python [источник]

  • Оберните все свои функции в одну функцию ( Шаг 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 - это данные, которые вы передали в функцию python из API, а ans - это вывод

  • Проверка функции

    function_result = my_deployable_function()( { "values" : [ 100,200] } )
    print( function_result )
    

    * Ввод payload - это dictionary. в соответствии с вашими потребностями вы можете добавлять элементы, но убедитесь, что вы не меняете структуру , т. е. все должно быть под одним корневым элементом, здесь это значения .

  • выход

    300
    
  • При выполнении ( Шаг 2 ) в source вам нужны учетные данные. Если у вас есть какие-либо проблемы с существующими учетными данными, создайте новый, поскольку срок действия старого может истек .

  • Если ваш план Lite, вы не можете выполнить более 5 развертываний ( Шаг 3 ). так что посчитай. если он превышен, создайте новый сервис, удалив более старый (разрешен только один).
  • Если вы создаете новый сервис, проверьте его в настройках проекта, связан ли он с вашим проектом или нет. в противном случае учетные данные будут работать только в IBM Watson, а не через REST API ( Шаг 4 ).

Следуйте официальной документации и сохраняйте эти инструкции, чтобы сэкономить ваше время.

...