Translation not up to date
Zaimportuj modele uczenia maszynowego wytrenowane poza systemem IBM Watson Machine Learning , aby można było wdrażać i testować modele. Przejrzyj struktury modelu, które są dostępne na potrzeby importowania modeli.
W tym przykładzie w celu zaimportowania wytrenowanego modelu oznacza:
- Zapisz wytrenowany model w repozytorium Watson Machine Learning
- Opcjonalnie: wdrożenie zapisanego modelu w usłudze Watson Machine Learning
a repozytorium oznacza zasobnik Cloud Object Storage . Więcej informacji na ten temat zawiera sekcja Tworzenie obszarów wdrażania.
Model można zaimportować w następujący sposób:
- Bezpośrednio przez interfejs użytkownika
- Przy użyciu ścieżki do pliku
- Przy użyciu ścieżki do katalogu
- Importowanie obiektu modelu
Więcej informacji na ten temat zawiera sekcja Importowanie modeli według struktury ML.
Więcej informacji na ten temat zawiera sekcja Zagadnienia, które należy wziąć pod uwagę podczas importowania modeli.
Przykład programowego dodawania modelu za pomocą klienta Python można znaleźć w tym notatniku:
Przykład programowego dodawania modelu za pomocą interfejsu API REST można znaleźć w następującym notatniku:
Dostępne sposoby importowania modeli dla każdego typu struktury
Ta tabela zawiera listę dostępnych sposobów importowania modeli do produktu Watson Machine Learningdla każdego typu środowiska.
Opcja importu | Biblioteka Spark MLlib | Scikit-nauka | XGBoost | TensorFlow | PyTorch |
---|---|---|---|---|---|
Importowanie obiektu modelu | ✓ | ✓ | ✓ | ||
Importowanie modelu przy użyciu ścieżki do pliku | ✓ | ✓ | ✓ | ✓ | |
Importowanie modelu przy użyciu ścieżki do katalogu | ✓ | ✓ | ✓ | ✓ |
Dodawanie modelu przy użyciu interfejsu użytkownika
Aby zaimportować model przy użyciu interfejsu użytkownika:
- Na karcie Zasoby w obszarze Watson Machine Learningkliknij opcję Importuj zasoby.
- Wybierz opcję
Local file
, a następnie opcję Model. - Wybierz plik modelu, który ma zostać zaimportowany, a następnie kliknij przycisk Importuj.
Mechanizm importowania automatycznie wybiera zgodny typ modelu i specyfikację oprogramowania na podstawie łańcucha wersji w pliku .xml
.
Importowanie obiektu modelu
Aby zaimportować obiekt modelu:
- Jeśli model znajduje się w położeniu zdalnym, należy postępować zgodnie z instrukcjami w sekcji Pobieranie modelu przechowywanego w położeniu zdalnym.
- Zapisz obiekt modelu w repozytorium Watson Machine Learning . Więcej informacji na ten temat zawiera sekcja Zapisywanie modelu w repozytorium Watson Machine Learning.
Importowanie modelu przy użyciu ścieżki do pliku
Aby zaimportować model przy użyciu ścieżki do pliku:
Jeśli model znajduje się w zdalnej lokalizacji, wykonaj czynności opisane w sekcji Pobieranie modelu przechowywanego w zdalnej lokalizacji , aby go pobrać.
Jeśli model znajduje się lokalnie, umieść go w określonym katalogu:
!cp <saved model> <target directory> !cd <target directory>
W przypadku modeli Scikit-learn, XGBoost, Tensorflowi PyTorch , jeśli pobrany plik nie jest archiwum
.tar.gz
, utwórz archiwum:!tar -zcvf <saved model>.tar.gz <saved model>
Plik modelu musi znajdować się w folderze najwyższego poziomu katalogu, na przykład:
assets/ <saved model> variables/ variables/variables.data-00000-of-00001 variables/variables.index
Użyj ścieżki do zapisanego pliku, aby zapisać plik modelu w repozytorium Watson Machine Learning . Więcej informacji na ten temat zawiera sekcja Zapisywanie modelu w repozytorium Watson Machine Learning.
Importowanie modelu przy użyciu ścieżki do katalogu
Aby zaimportować model przy użyciu ścieżki do katalogu:
Jeśli model znajduje się w zdalnej lokalizacji, zapoznaj się z sekcją Pobieranie modelu zapisanego w zdalnej lokalizacji.
Jeśli model znajduje się lokalnie, umieść go w określonym katalogu:
!cp <saved model> <target directory> !cd <target directory>
W przypadku modeli scikit-learn, XGBoost, Tensorflowi PyTorch plik modelu musi znajdować się w folderze najwyższego poziomu katalogu, na przykład:
assets/ <saved model> variables/ variables/variables.data-00000-of-00001 variables/variables.index
Użyj ścieżki katalogu, aby zapisać plik modelu w repozytorium Watson Machine Learning . Więcej informacji na ten temat zawiera sekcja Zapisywanie modelu w repozytorium Watson Machine Learning.
Pobieranie modelu zapisanego w miejscu zdalnym
Aby pobrać model z miejsca zdalnego, należy postępować zgodnie z następującym kodem przykładowym:
import os
from wget import download
target_dir = '<target directory name>'
if not os.path.isdir(target_dir):
os.mkdir(target_dir)
filename = os.path.join(target_dir, '<model name>')
if not os.path.isfile(filename):
filename = download('<url to model>', out = target_dir)
Zagadnienia, które należy wziąć pod uwagę podczas importowania modeli
Więcej informacji na temat importowania konkretnego typu modelu zawiera sekcja:
- Modele zapisane w formacie PMML
- Modele Spark MLlib
- Scikit-modele do nauki
- Modele XGBoost
- Modele TensorFlow
- Modele PyTorch
Więcej informacji na temat środowisk, których można używać z produktem Watson Machine Learning, zawiera sekcja Obsługiwane środowiska.
Modele zapisane w formacie PMML
- Jedynym dostępnym typem wdrożenia dla modeli, które są importowane z PMML, jest wdrożenie w trybie z połączeniem.
- Plik PMML musi mieć rozszerzenie
.xml
. - Modeli PMML nie można używać w przepływie strumienia SPSS .
- Plik PMML nie może zawierać prologu. W zależności od biblioteki, która jest używana podczas zapisywania modelu, prologu można dodać domyślnie na początku pliku. Jeśli na przykład plik zawiera łańcuch prologu, taki jak
spark-mllib-lr-model-pmml.xml
, należy usunąć ten łańcuch przed zaimportowaniem pliku PMML do obszaru wdrażania.
W zależności od biblioteki, która jest używana podczas zapisywania modelu, prologu można dodać domyślnie na początku pliku, tak jak w poniższym przykładzie:
::::::::::::::
spark-mllib-lr-model-pmml.xml
::::::::::::::
Należy usunąć ten prologu przed zaimportowaniem pliku PMML do systemu Watson Machine Learning.
Modele Spark MLlib
- Dostępne są tylko modele klasyfikacji i regresji.
- Transformatory niestandardowe, funkcje zdefiniowane przez użytkownika i klasy nie są dostępne.
Scikit-modele do nauki
.pkl
i.pickle
to dostępne formaty importu.- Aby przekształcić model do postaci szeregowej lub przekształcić go w pirefaktoryzację, należy użyć pakietu
joblib
. - Dostępne są tylko modele klasyfikacji i regresji.
- Typ wejściowy ramki danych pandas dla interfejsu API
predict()
jest niedostępny. - Jedynym dostępnym typem wdrożenia dla modeli scikit-learn jest wdrożenie w trybie z połączeniem.
Modele XGBoost
.pkl
i.pickle
to dostępne formaty importu.- Aby przekształcić model do postaci szeregowej lub przekształcić go w pirefaktoryzację, należy użyć pakietu
joblib
. - Dostępne są tylko modele klasyfikacji i regresji.
- Typ wejściowy ramki danych pandas dla interfejsu API
predict()
jest niedostępny. - Jedynym dostępnym typem wdrożenia dla modeli XGBoost jest wdrożenie w trybie z połączeniem.
Modele TensorFlow
.pb
,.h5
i.hdf5
to dostępne formaty importu.- Aby zapisać lub przekształcić do postaci szeregowej model TensorFlow , należy użyć metody
tf.saved_model.save()
. - Produkt
tf.estimator
nie jest dostępny. - Jedyne dostępne typy wdrożenia dla modeli TensorFlow to: wdrożenie w trybie z połączeniem i wdrożenie wsadowe.
Modele PyTorch
Jedynym dostępnym typem wdrożenia dla modeli PyTorch jest wdrożenie w trybie z połączeniem.
Aby zaimportować model Pytorch do systemu Watson Machine Learning, należy go wcześniej wyeksportować do formatu
.onnx
. Zapoznaj się z tym kodem.torch.onnx.export(<model object>, <prediction/training input data>, "<serialized model>.onnx", verbose=True, input_names=<input tensor names>, output_names=<output tensor names>)
Zapisywanie modelu w repozytorium Watson Machine Learning
Użyj tego kodu, aby zapisać model w repozytorium Watson Machine Learning :
from ibm_watson_machine_learning import APIClient
client = APIClient(<your credentials>)
sw_spec_uid = client.software_specifications.get_uid_by_name("<software specification name>")
meta_props = {
client.repository.ModelMetaNames.NAME: "<your model name>",
client.repository.ModelMetaNames.SOFTWARE_SPEC_UID: sw_spec_uid,
client.repository.ModelMetaNames.TYPE: "<model type>"}
client.repository.store_model(model=<your model>, meta_props=meta_props)
Uwagi:
W zależności od używanego środowiska modelu
<your model>
może być rzeczywistym obiektem modelu, pełną ścieżką do zapisanego pliku modelu lub ścieżką do katalogu, w którym znajduje się plik modelu. Więcej informacji na ten temat zawiera sekcja Dostępne sposoby importowania modeli według typu struktury.Aby uzyskać listę dostępnych specyfikacji oprogramowania, które można użyć jako
<software specification name>
, należy użyć metodyclient.software_specifications.list()
.Lista dostępnych typów modeli do użycia jako
model_type
znajduje się w sekcji Specyfikacje oprogramowania i specyfikacje sprzętu dla wdrożeń.Podczas eksportowania modelu Pytorch do formatu
.onnx
należy określić opcjękeep_initializers_as_inputs=True
i ustawić wartośćopset_version
na 9 (wdrożeniaWatson Machine Learning używają środowiska wykonawczegocaffe2
ONNX, które nie obsługuje wersji opset wyższych niż 9).torch.onnx.export(net, x, 'lin_reg1.onnx', verbose=True, keep_initializers_as_inputs=True, opset_version=9)
Więcej informacji na temat tworzenia słownika
<your credentials>
zawiera sekcja UwierzytelnianieWatson Machine Learning.
Więcej inform.
- Więcej informacji na temat dodawania zasobów danych do obszaru zawiera sekcja Dodawanie zasobów danych do obszaru wdrażania.
- Więcej informacji na temat awansowania zasobów danych na obszar zawiera sekcja Promowanie zasobów do obszaru wdrażania.
Temat nadrzędny: Zasoby aplikacyjne w obszarach wdrażania