Gradio機(jī)器學(xué)習(xí)模型快速部署工具quickstart
引言
書接上回 Gradio機(jī)器學(xué)習(xí)模型快速部署工具【quickstart】翻譯,講到多輸入輸出,其實(shí)很簡單,就是把多個組件包裝到列表,inputs和outputs對應(yīng)的就是2個列表,輸入輸出列表,僅此而已。
1.圖像示例
Gradio 支持多種類型的組件,例如Image
, DataFrame
, Video
, 或Label
. 讓我們嘗試一個圖像到圖像的功能來感受一下這些!
import numpy as np import gradio as gr def sepia(input_img): sepia_filter = np.array([ [0.393, 0.769, 0.189], [0.349, 0.686, 0.168], [0.272, 0.534, 0.131] ]) sepia_img = input_img.dot(sepia_filter.T) sepia_img /= sepia_img.max() return sepia_img demo = gr.Interface(sepia, gr.Image(shape=(200, 200)), "image") demo.launch()
使用該Image
組件作為輸入時,您的函數(shù)將接收一個形狀為 的 NumPy 數(shù)組(width, height, 3)
,其中最后一個維度表示 RGB 值。我們還將以 NumPy 數(shù)組的形式返回圖像。
您還可以使用關(guān)鍵字參數(shù)設(shè)置組件使用的數(shù)據(jù)類型type=
。例如,如果您希望您的函數(shù)采用圖像的文件路徑而不是 NumPy 數(shù)組,則輸入Image
組件可以寫為:
gr.Image(type="filepath", shape=...)
另請注意,我們的輸入Image
組件帶有一個編輯按鈕??,它允許裁剪和放大圖像。以這種方式處理圖像有助于揭示機(jī)器學(xué)習(xí)模型中的偏差或隱藏缺陷!
您可以在Gradio 文檔中閱讀更多關(guān)于許多組件以及如何使用它們的信息。
2.塊:更多的靈活性和控制
Gradio 提供了兩個類來構(gòu)建應(yīng)用程序:
1. Interface,它為創(chuàng)建我們迄今為止一直在討論的演示提供了高級抽象。
2. Blocks,一種用于設(shè)計(jì)具有更靈活布局和數(shù)據(jù)流的網(wǎng)絡(luò)應(yīng)用程序的低級 API。Blocks 允許你做一些事情,比如以多個數(shù)據(jù)流和演示為特色,控制組件在頁面上出現(xiàn)的位置,處理復(fù)雜的數(shù)據(jù)流(例如,輸出可以作為其他功能的輸入),以及根據(jù)用戶交互更新組件的屬性/可見性——仍然全部在 Python 中。如果您需要這種可定制性,請?jiān)囋?code>Blocks吧!
讓我們看一個簡單的例子。請注意此處的 API 與Interface
.
import gradio as gr def greet(name): return "Hello " + name + "!" with gr.Blocks() as demo: name = gr.Textbox(label="Name") output = gr.Textbox(label="Output Box") greet_btn = gr.Button("Greet") greet_btn.click(fn=greet, inputs=name, outputs=output) demo.launch()
注意事項(xiàng):
Blocks
是用一個with
子句制作的,在這個子句中創(chuàng)建的任何組件都會自動添加到應(yīng)用程序中。- 組件按照它們創(chuàng)建的順序垂直顯示在應(yīng)用程序中。(稍后我們將介紹自定義布局?。?/li>
- 創(chuàng)建了A
Button
,然后將click
事件偵聽器添加到此按鈕。這個 API 應(yīng)該看起來很熟悉!與 一樣Interface
,該click
方法采用 Python 函數(shù)、輸入組件和輸出組件。
3.更復(fù)雜的 Blocks
這是一個應(yīng)用程序,可讓您體驗(yàn)Blocks
:
import numpy as np import gradio as gr # 1.文字翻轉(zhuǎn) def flip_text(x): return x[::-1] # 2.圖像翻轉(zhuǎn) def flip_image(x): return np.fliplr(x) with gr.Blocks() as demo: # 3.添加markdown組件 gr.Markdown("Flip text or image files using this demo.") # 4.添加Tab with gr.Tab("Flip Text"): text_input = gr.Textbox() text_output = gr.Textbox() text_button = gr.Button("Flip") with gr.Tab("Flip Image"): with gr.Row(): image_input = gr.Image() image_output = gr.Image() image_button = gr.Button("Flip") # 5.添加Accordion with gr.Accordion("Open for More!"): gr.Markdown("Look at me...") # 6.添加2個按鈕 text_button.click(flip_text, inputs=text_input, outputs=text_output) image_button.click(flip_image, inputs=image_input, outputs=image_output) demo.launch()
參考網(wǎng)址:gradio.app/quickstart/
以上就是Gradio機(jī)器學(xué)習(xí)模型快速部署工具quickstart的詳細(xì)內(nèi)容,更多關(guān)于Gradio部署quickstart的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python3基于OpenCV實(shí)現(xiàn)證件照背景替換
這篇文章主要為大家詳細(xì)介紹了python3基于OpenCV實(shí)現(xiàn)證件照背景替換,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-07-07Django緩存系統(tǒng)實(shí)現(xiàn)過程解析
這篇文章主要介紹了Django緩存系統(tǒng)實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08python之PySide2安裝使用及QT Designer UI設(shè)計(jì)案例教程
這篇文章主要介紹了python之PySide2安裝使用及QT Designer UI設(shè)計(jì)案例教程,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07itchat和matplotlib的結(jié)合使用爬取微信信息的實(shí)例
下面小編就為大家?guī)硪黄猧tchat和matplotlib的結(jié)合使用爬取微信信息的實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08python網(wǎng)頁請求urllib2模塊簡單封裝代碼
這篇文章主要分享一個python網(wǎng)頁請求模塊urllib2模塊的簡單封裝代碼,有需要的朋友參考下2014-02-02python使用opencv在Windows下調(diào)用攝像頭實(shí)現(xiàn)解析
這篇文章主要介紹了python使用opencv在Windows下調(diào)用攝像頭實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11