初学者好 |如何从头开始创建一个图像识别的AI应用[ctrl:c+v,你就完成了]
- 🔔 博客主頁:https://blog.csdn.net/weixin_41556756
- 📣 歡迎🎉點贊👍收藏🌟評論📝如有錯誤請指正!
- 💻 前端&Python領域博主
- 😁 你們的支持是我最大的動力
📢前言
在這篇文章中,我將向你展示如何從頭開始創建一個圖像識別AI應用。 具體來說,我們要創建一個人工智能應用程序,以識別你自己畫的手寫數字。
首先,讓我們看一個樣本。 它被稱為 “數字識別器”。 你可以在左邊的盒子里畫出你喜歡的0到9的數字,預測結果會出現在右邊。 如果你的字跡像我一樣凌亂,它可能無法正確識別數字,但如果你仔細畫,它就會像這樣識別(笑)。
這一次,我們將制作一個網絡應用程序,可以像這樣識別你所畫的數字。 此外,這篇文章的標題是 “從頭開始創建”。 換句話說,我們將使用TensorFlow創建一個AI模型,而不是使用API。 然而,我們將使用的模型是一個簡單的神經網絡。
你們中的一些人可能會想 "哦,我壓根就不知道怎么做… "或 “建立一個環境似乎很難…”, 但不要擔心,我們將使用谷歌Colab,所以任何人都可以通過復制和粘貼來創建它。
你可能有這樣的誤解,認為深度學習和機器學習需要大量的理論和數學知識,但重要的是先做出能用的東西。 如果這個視頻讓你覺得人工智能很有趣,那么你可以開始詳細研究理論和數學。
順便說一下,我想說的是。
- 學習如何創建像這樣的AI應用的課程
- 我想知道你想了解哪個課程。
請在評論中告訴我們你想看哪一個! 或者你可以同時進行!
現在我們已經有點偏離主題了,讓我們來談談細節問題。
文章目錄
- 📢前言
- 🤚初學者好!如何從頭開始創建一個圖像識別的AI應用[復制和粘貼,你就完成了]。
- 📪第①步:導入庫
- 📫第②步:用TensorFlow創建一個AI模型
- 📬第③步:用Gradio創建一個圖像識別應用程序
- 📭結尾&福利
🤚初學者好!如何從頭開始創建一個圖像識別的AI應用[復制和粘貼,你就完成了]。
以下是你需要采取的三個步驟,以便開始工作。
- 「第①步:導入庫」
- 「第②步:用TensorFlow創建一個AI模型」
- 「第③步:用Gradio創建一個圖像識別應用程序」
第一步是導入我們將使用的庫,然后我們將使用TensorFlow創建一個AI模型。 然后我們將使用TensorFlow創建一個人工智能模型,最后我們將使用Gradio把它變成一個網絡應用。 對于其他框架,如Streamlit,你需要做更多的工作來把它變成谷歌Colab應用,但對于Gradio,你可以像現在這樣在單元格中運行代碼。
使用Gradio,你只需要在單元格中運行代碼。 因此,讓我們從第一步開始。
📪第①步:導入庫
我們將使用的Gradio在默認情況下不包括在內。 所以你需要先安裝它。 當你安裝它時,你需要添加-q來隱藏額外的日志。
$ pip install gradio -q等待一會兒,直到執行完畢。
--------------------------------------??--------------------------------------
一旦Gradio安裝完成,我們就可以導入庫了。 我們將使用TensorFlow和Gradio,所以我們將import tensorflow as tf,然后我們將import gradio as gr。
TensorFlow的最新版本是2系列。 讓我們檢查一下TensorFlow的版本,tf.__version__。 在使用Google Colab時,默認的版本是2.5.0,但在這種情況下,我想讓它明確是2.5.0,所以我也會寫%tensorflow_version 2.x。
%tensorflow_version 2.x import tensorflow as tf import gradio as gr我還想補充一點。
一旦你完成了這些,按Shift + Enter。 我們還想刪除多余的日志,所以我們將使用
tf.get_logger().setLevel('ERROR')📫第②步:用TensorFlow創建一個AI模型
一旦庫的安裝完成,我們將使用TensorFlow創建一個AI模型。 然而,由于本文的目的是創建一個圖像識別應用程序,我們將不使用復雜的模型。 讓我們保持像煮煎蛋一樣簡單的模式。
為了解釋我們將使用什么樣的模型,我們將使用一個只有一個中間層的3層神經網絡。
神經網絡是 “一種模仿人腦結構的機器學習算法”。 圖像是這樣的。
在神經網絡中,每個圓圈…或者更準確地說,在圓圈之間,都有自己的參數,這些參數可以被優化以正確判斷圖像。 由于本文的目的是體驗神經網絡的概況,我們將暫時不對神經網絡進行解釋。
在該圖所示的神經網絡模型中,圓圈的數量被設定為
- 「輸入層:784個核心」
- 「中間層:128」
- 「輸出層:10」
如果你想做一些修改,你可以通過簡單地調整下面描述的一些實現方式來實現。 由于我們不打算做任何重大改變,讓我們幾乎逐字逐句地復制和粘貼TensorFlow教程的內容。 由于我們已經安裝了這個庫,讓我們開始加載數據。
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data() x_train, X_test = x_train / 255.0, x_test / 255.0 import matplotlib.pyplot as plt fig, ax = plt.subplots(nrows=2, ncols=5, figsize=(10, 10), tight_layout=True)n = 0 for i in range(2):for j in range(5):ax[i][j].imshow(X_train[n], cmap=plt.cm.binary)n += 1下一步是創建模型。 為了方便起見,我們就把寫著輟學的那部分去掉吧。
model = tf.keras.models.Sequential([tf.keras.layers.Flatten(input_shape=(28, 28)),tf.keras.layers.Dense(128,activation='relu'),tf.keras.layers.Dense(10, activation='softmax') ])model.summary()現在我們需要訓練這個模型,我們可以通過設置model.compile()來實現。
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])最后,我們來訓練模型。
model.fit(x_train, y_train, epochs=10)現在模型已經被訓練好了,讓我們來檢查一下它的準確性。
_, test_acc = model.evaluate(x_test, y_test, verbose=2) print(test_acc)「這大約是使用測試數據的97%。」
📬第③步:用Gradio創建一個圖像識別應用程序
現在我們將使用我們創建的模型和Gradio把它變成一個圖像識別應用程序。
def recognize_digit(img):img = img.reshape(1, 28, 28)prediction = model.predict(img).tolist()[0]return {str(i): prediction[i] for i in range(10)}label = gr.outputs.Label(num_top_classes=4) interface = gr.Interface(fn=recognize_digit, inputs='sketchpad', outputs=label, live=True,title='Digit Recognizer' )我認為問題的關鍵在于gr.Interface()中使用的fn=classify_digit。
作為參數傳遞的函數classify_digit()預測你所畫的數字的圖像對應于哪個標簽。
當你使用Gradio時,不僅用于圖像識別,你可以用參數fn傳遞一個用于預測的函數。
一旦你寫到這一步,你就可以在最后推出。
interface.launch(share=True)然后你應該看到模型根據你所畫的數字預測的標簽!
現在你已經從頭開始創建了一個圖像識別AI應用^^。
📭結尾&福利
》》》》》》🎁Python學習路線匯總《《《《《《
》》》》》》🎁Python必備開發工具《《《《《《
》》》》》》🎁精品Python學習書籍《《《《《《
》》》》》》🎁Python學習視頻合集《《《《《《
》》》》》》🎁一百道Python練習題《《《《《《
總結
以上是生活随笔為你收集整理的初学者好 |如何从头开始创建一个图像识别的AI应用[ctrl:c+v,你就完成了]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 六所大学要增加计算机类硕士专业,三所大学
- 下一篇: 【ChatGPT调教】调教ChatGPT