TensorFlow Deep-Learning-Framework-Modell-Inferenzpipeline für Porträtausschnitt-Inferenz

PHPz
Freigeben: 2024-03-26 13:00:39
nach vorne
762 Leute haben es durchsucht

Übersicht

Um ModelScope-Benutzern die schnelle und bequeme Nutzung verschiedener von der Plattform bereitgestellter Modelle zu ermöglichen, wird eine Reihe voll ausgestatteter Python-Bibliotheken bereitgestellt, die die Implementierung offizieller ModelScope-Modelle sowie deren Verwendung umfassen Modelle für Inferenz, Feinabstimmung von Code im Zusammenhang mit der Datenvorverarbeitung, Nachverarbeitung, Effektbewertung und anderen für andere Aufgaben erforderlichen Funktionen, während gleichzeitig eine einfache und benutzerfreundliche API und umfangreiche Anwendungsbeispiele bereitgestellt werden. Durch den Aufruf der Bibliothek können Benutzer Aufgaben wie Modellinferenz, Training und Bewertung erledigen, indem sie nur wenige Codezeilen schreiben. Außerdem können sie auf dieser Basis schnell eine Sekundärentwicklung durchführen, um ihre eigenen innovativen Ideen zu verwirklichen.

Die derzeit von der Bibliothek bereitgestellten Algorithmusmodelle decken fünf Hauptbereiche der KI ab: Bild, Verarbeitung natürlicher Sprache, Sprache, Multimodalität und Wissenschaft sowie Dutzende von Anwendungsszenarioaufgaben. Informationen zu spezifischen Aufgaben finden Sie im Dokument: Einführung in die Aufgabe.

Deep Learning Framework

Die ModelScope Library unterstützt derzeit Deep-Learning-Frameworks wie Pytorch und Tensorflow. Weitere Frameworks werden in Zukunft kontinuierlich aktualisiert und erweitert, also bleiben Sie dran! Alle offiziellen Modelle können über die ModelScope-Bibliothek zur Modellinferenz verwendet werden, und einige Modelle können die Bibliothek auch zum Training und zur Evaluierung nutzen. Vollständige Nutzungsinformationen finden Sie auf der Modellkarte des entsprechenden Modells.

Modellinferenzpipeline

Modellinferenz

Beim Deep Learning bezieht sich Inferenz auf den Prozess, durch den das Modell Daten vorhersagt. Wenn ModelScope eine Inferenz durchführt, verwendet es die Pipeline, um die erforderlichen Vorgänge nacheinander auszuführen. Eine typische Pipeline umfasst normalerweise drei Schritte: Datenvorverarbeitung, Modellvorwärtsinferenz und Datennachverarbeitung.

Einführung in Pipeline

Die Methode „pipeline()“ ist eine der grundlegendsten Benutzermethoden im ModelScope-Framework und kann zur schnellen Modellinferenz in verschiedenen Bereichen verwendet werden. Mit der Methode „pipeline()“ können Benutzer problemlos Modellinferenzen für bestimmte Aufgaben mit nur einer Codezeile abschließen. Die

pipeline()-Methode ist eine der grundlegendsten Benutzermethoden im ModelScope-Framework und kann zur schnellen Modellinferenz in verschiedenen Bereichen verwendet werden. Mit der Methode „pipeline()“ können Benutzer problemlos Modellinferenzen für bestimmte Aufgaben mit nur einer Codezeile abschließen.

Verwendung von Pipeline

In diesem Artikel wird kurz vorgestellt, wie die Pipeline-Methode zum Laden des Modells für die Inferenz verwendet wird. Durch die Pipeline-Methode können Benutzer das erforderliche Modell einfach aus dem Modelllager abrufen, um daraus Rückschlüsse auf der Grundlage des Aufgabentyps und des Modellnamens zu ziehen. Der Hauptvorteil dieser Methode besteht darin, dass sie einfach zu verwenden ist und Modellinferenzen schnell und effizient durchführen kann. Der Vorteil der Pipeline-Methode besteht darin, dass sie eine direkte Möglichkeit bietet, das Modell zu erhalten und anzuwenden, ohne dass Benutzer die spezifischen Details des Modells verstehen müssen, wodurch die Schwelle für die Verwendung des Modells gesenkt wird. Durch die Pipeline-Methode können sich Benutzer mehr auf die Lösung von Problemen und die Vorbereitung der Umgebung konzentrieren. Wichtige Parameter

Grundlegende Verwendung von Pipeline
  • Chinesische Wortsegmentierung
  • Die Pipeline-Funktion unterstützt die Angabe eines bestimmten Aufgabennamens, das Laden des Aufgabenstandardmodells und das Erstellen des entsprechenden Pipeline-Objekts.
  • Python-Code
  • from modelscope.pipelines import pipelineword_segmentation = pipeline('word-segmentation')input_str = '开源技术小栈作者是Tinywan,你知道不?'print(word_segmentation(input_str))
    Nach dem Login kopieren
  • PHP-Code
<?php $operator = PyCore::import("operator");$builtins = PyCore::import("builtins");$pipeline = PyCore::import('modelscope.pipelines')->pipeline;$word_segmentation = $pipeline("word-segmentation");$input_str = "开源技术小栈作者是Tinywan,你知道不?";PyCore::print($word_segmentation($input_str));
Nach dem Login kopieren

Online-Konvertierungstool: https://www.swoole.com/py2php/

Ergebnisse ausgeben

/usr/local/php-8.2.14/bin/php demo.php 2024-03-25 21:41:42,434 - modelscope - INFO - PyTorch version 2.2.1 Found.2024-03-25 21:41:42,434 - modelscope - INFO - Loading ast index from /home/www/.cache/modelscope/ast_indexer2024-03-25 21:41:42,577 - modelscope - INFO - Loading done! Current index file version is 1.13.0, with md5 f54e9d2dceb89a6c989540d66db83a65 and a total number of 972 components indexed2024-03-25 21:41:44,661 - modelscope - WARNING - Model revision not specified, use revision: v1.0.32024-03-25 21:41:44,879 - modelscope - INFO - initiate model from /home/www/.cache/modelscope/hub/damo/nlp_structbert_word-segmentation_chinese-base2024-03-25 21:41:44,879 - modelscope - INFO - initiate model from location /home/www/.cache/modelscope/hub/damo/nlp_structbert_word-segmentation_chinese-base.2024-03-25 21:41:44,880 - modelscope - INFO - initialize model from /home/www/.cache/modelscope/hub/damo/nlp_structbert_word-segmentation_chinese-baseYou are using a model of type bert to instantiate a model of type structbert. This is not supported for all configurations of models and can yield errors.2024-03-25 21:41:48,633 - modelscope - WARNING - No preprocessor field found in cfg.2024-03-25 21:41:48,633 - modelscope - WARNING - No val key and type key found in preprocessor domain of configuration.json file.2024-03-25 21:41:48,633 - modelscope - WARNING - Cannot find available config to build preprocessor at mode inference, current config: {'model_dir': '/home/www/.cache/modelscope/hub/damo/nlp_structbert_word-segmentation_chinese-base'}. trying to build by task and model information.2024-03-25 21:41:48,639 - modelscope - INFO - cuda is not available, using cpu instead.2024-03-25 21:41:48,640 - modelscope - WARNING - No preprocessor field found in cfg.2024-03-25 21:41:48,640 - modelscope - WARNING - No val key and type key found in preprocessor domain of configuration.json file.2024-03-25 21:41:48,640 - modelscope - WARNING - Cannot find available config to build preprocessor at mode inference, current config: {'model_dir': '/home/www/.cache/modelscope/hub/damo/nlp_structbert_word-segmentation_chinese-base', 'sequence_length': 512}. trying to build by task and model information./home/www/anaconda3/envs/tinywan-modelscope/lib/python3.10/site-packages/transformers/modeling_utils.py:962: FutureWarning: The `device` argument is deprecated and will be removed in v5 of Transformers.warnings.warn({'output': ['开源', '技术', '小', '栈', '作者', '是', 'Tinywan', ',', '你', '知道', '不', '?']}
Nach dem Login kopieren

Mehrere Beispiele eingeben
Pipe Linienobjekt wird ebenfalls unterstützt Übergabe mehrerer Probenlisteneingaben und Rückgabe der entsprechenden Ausgabeliste, wobei jedes Element dem Rückgabeergebnis der Eingabeprobe entspricht. Die Argumentationsmethode für mehrere Textteile besteht darin, dass die Eingabedaten mithilfe eines Iterators innerhalb der Pipeline einzeln verarbeitet und dann an dieselbe Rückgabeliste angehängt werden.

Python-Code
from modelscope.pipelines import pipelineword_segmentation = pipeline('word-segmentation')inputs =['开源技术小栈作者是Tinywan,你知道不?','webman这个框架不错,建议你看看']print(word_segmentation(inputs))
Nach dem Login kopieren

PHP-Code

<?php $operator = PyCore::import("operator");$builtins = PyCore::import("builtins");$pipeline = PyCore::import('modelscope.pipelines')->pipeline;$word_segmentation = $pipeline("word-segmentation");$inputs = new PyList(["开源技术小栈作者是Tinywan,你知道不?", "webman这个框架不错,建议你看看"]);PyCore::print($word_segmentation($inputs));
Nach dem Login kopieren
Ausgabe

[{'output': ['开源', '技术', '小', '栈', '作者', '是', 'Tinywan', ',', '你', '知道', '不', '?']},{'output': ['webman', '这个', '框架', '不错', ',', '建议', '你', '看看']}]
Nach dem Login kopieren

Die Unterstützung von Batch-Argumentation

Pipeline ähnelt der oben genannten „Eingabe mehrerer Texte“, mit dem Unterschied, dass dies der Fall ist angegeben werden vom Benutzer Auf der Batch_size-Skala wird die Batch-Forward-Inferenz im Modell-Forward-Prozess implementiert. „Geben Sie einen Datensatz ein.“
Erstellen Sie ein Modellobjekt für die Inferenz.

Python-Code.
inputs =['今天天气不错,适合出去游玩','这本书很好,建议你看看']# 指定batch_size参数来支持批量推理print(word_segmentation(inputs, batch_size=2))# 输出[{'output': ['今天', '天气', '不错', ',', '适合', '出去', '游玩']}, {'output': ['这', '本', '书', '很', '好', ',', '建议', '你', '看看']}]
Nach dem Login kopieren
.

PHP-Code.
from modelscope.msdatasets import MsDatasetfrom modelscope.pipelines import pipelineinputs = ['今天天气不错,适合出去游玩', '这本书很好,建议你看看']dataset = MsDataset.load(inputs, target='sentence')word_segmentation = pipeline('word-segmentation')outputs = word_segmentation(dataset)for o in outputs:print(o)# 输出{'output': ['今天', '天气', '不错', ',', '适合', '出去', '游玩']}{'output': ['这', '本', '书', '很', '好', ',', '建议', '你', '看看']}
Nach dem Login kopieren
.

Ausgabe

from modelscope.models import Modelfrom modelscope.pipelines import pipelinemodel = Model.from_pretrained('damo/nlp_structbert_word-segmentation_chinese-base')word_segmentation = pipeline('word-segmentation', model=model)inputs =['开源技术小栈作者是Tinywan,你知道不?','webman这个框架不错,建议你看看']print(word_segmentation(inputs))
Nach dem Login kopieren
Bild

Hinweis:

Stellen Sie sicher, dass Sie die OpenCV-Bibliothek installiert haben. Wenn es nicht installiert ist, können Sie es über pip

<?php $operator = PyCore::import("operator");$builtins = PyCore::import("builtins");$Model = PyCore::import('modelscope.models')->Model;$pipeline = PyCore::import('modelscope.pipelines')->pipeline;$model = $Model->from_pretrained("damo/nlp_structbert_word-segmentation_chinese-base");$word_segmentation = $pipeline("word-segmentation", model: $model);$inputs = new PyList(["开源技术小栈作者是Tinywan,你知道不?", "webman这个框架不错,建议你看看"]);PyCore::print($word_segmentation($inputs));
Nach dem Login kopieren
installieren

没有安装会提示:PHP Fatal error: Uncaught PyError: No module named 'cv2' in /home/www/build/ai/demo3.php:4

  1. 确保你已经安装深度学习框架包TensorFlow库

否则提示modelscope.pipelines.cv.image_matting_pipeline requires the TensorFlow library but it was not found in your environment. Checkout the instructions on the installation page: https://www.tensorflow.org/install and follow the ones that match your environment.。

报错信息表明,你正在尝试使用一个名为 modelscope.pipelines.cv.image_matting_pipeline 的模块,该模块依赖于 TensorFlow 库。然而,该模块无法正常工作,因为缺少必要的 TensorFlow 依赖。

可以使用以下命令安装最新版本的 TensorFlow

pip install tensorflow
Nach dem Login kopieren

TensorFlow Deep-Learning-Framework-Modell-Inferenzpipeline für Porträtausschnitt-Inferenz图片

人像抠图('portrait-matting')

输入图片

TensorFlow Deep-Learning-Framework-Modell-Inferenzpipeline für Porträtausschnitt-Inferenz图片

Python 代码

import cv2from modelscope.pipelines import pipelineportrait_matting = pipeline('portrait-matting')result = portrait_matting('https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/image_matting.png')cv2.imwrite('result.png', result['output_img'])
Nach dem Login kopieren

PHP 代码 tinywan-images.php

<?php $operator = PyCore::import("operator");$builtins = PyCore::import("builtins");$cv2 = PyCore::import('cv2');$pipeline = PyCore::import('modelscope.pipelines')->pipeline;$portrait_matting = $pipeline("portrait-matting");$result = $portrait_matting("https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/image_matting.png");$cv2->imwrite("tinywan_result.png", $result->__getitem__("output_img"));
Nach dem Login kopieren

加载本地文件图片$result = $portrait_matting("./tinywan.png");

执行结果

/usr/local/php-8.2.14/bin/php tinywan-images.php 2024-03-25 22:17:25,630 - modelscope - INFO - PyTorch version 2.2.1 Found.2024-03-25 22:17:25,631 - modelscope - INFO - TensorFlow version 2.16.1 Found.2024-03-25 22:17:25,631 - modelscope - INFO - Loading ast index from /home/www/.cache/modelscope/ast_indexer2024-03-25 22:17:25,668 - modelscope - INFO - Loading done! Current index file version is 1.13.0, with md5 f54e9d2dceb89a6c989540d66db83a65 and a total number of 972 components indexed2024-03-25 22:17:26,990 - modelscope - WARNING - Model revision not specified, use revision: v1.0.02024-03-25 22:17:27.623085: I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.2024-03-25 22:17:27.678592: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.To enable the following instructions: AVX2 AVX512F AVX512_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.2024-03-25 22:17:28.551510: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT2024-03-25 22:17:29,206 - modelscope - INFO - initiate model from /home/www/.cache/modelscope/hub/damo/cv_unet_image-matting2024-03-25 22:17:29,206 - modelscope - INFO - initiate model from location /home/www/.cache/modelscope/hub/damo/cv_unet_image-matting.2024-03-25 22:17:29,209 - modelscope - WARNING - No preprocessor field found in cfg.2024-03-25 22:17:29,210 - modelscope - WARNING - No val key and type key found in preprocessor domain of configuration.json file.2024-03-25 22:17:29,210 - modelscope - WARNING - Cannot find available config to build preprocessor at mode inference, current config: {'model_dir': '/home/www/.cache/modelscope/hub/damo/cv_unet_image-matting'}. trying to build by task and model information.2024-03-25 22:17:29,210 - modelscope - WARNING - Find task: portrait-matting, model type: None. Insufficient information to build preprocessor, skip building preprocessorWARNING:tensorflow:From /home/www/anaconda3/envs/tinywan-modelscope/lib/python3.10/site-packages/modelscope/utils/device.py:60: is_gpu_available (from tensorflow.python.framework.test_util) is deprecated and will be removed in a future version.Instructions for updating:Use `tf.config.list_physical_devices('GPU')` instead.2024-03-25 22:17:29,213 - modelscope - INFO - loading model from /home/www/.cache/modelscope/hub/damo/cv_unet_image-matting/tf_graph.pbWARNING:tensorflow:From /home/www/anaconda3/envs/tinywan-modelscope/lib/python3.10/site-packages/modelscope/pipelines/cv/image_matting_pipeline.py:45: FastGFile.__init__ (from tensorflow.python.platform.gfile) is deprecated and will be removed in a future version.Instructions for updating:Use tf.gfile.GFile.2024-03-25 22:17:29,745 - modelscope - INFO - load model done
Nach dem Login kopieren

输出图片

TensorFlow Deep-Learning-Framework-Modell-Inferenzpipeline für Porträtausschnitt-Inferenz图片

Das obige ist der detaillierte Inhalt vonTensorFlow Deep-Learning-Framework-Modell-Inferenzpipeline für Porträtausschnitt-Inferenz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage