[深度學習]訓練VAE模型用於生成圖片_生成篇

閱讀時間約 4 分鐘

本文將延續上一篇文章,經由訓練好的VAE模型其中的解碼器,來生成圖片。

[深度學習]訓練VAE模型用於生成圖片_訓練篇

生成的結果圖

輸入產生的隨機雜訊,輸入VAE的解碼器後,生成的圖片,雖然生成的效果有點差勁,但不難看出輪廓跟原先的資料也是很接近了,畢竟模型跟訓練集的資料都偏簡單,利用簡單的範例來理解,VAE的作用及功能。

raw-image

fashion_mnist資料

fashion_mnist資料

fashion_mnist資料


隨機數據

tf.random.normal隨機產生的數據轉換成NumPy 陣列,在Show出。可以更直觀的觀察輸入這些像雜訊的東西,經過VAE訓練好的解碼器來生成圖片。

raw-image

Python及套件版本

Python version: 3.11.3
NumPy version: 1.24.2
Pandas version: 1.5.3
Matplotlib version: 3.7.1
tensorflow version: 2.13.0

程式碼

import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
from tensorflow import keras
from keras.models import load_model

# 載入模型
loaded_var_ae = load_model('模型路徑')

# 設置隨機種子
tf.random.set_seed(1)
# 產生隨機數據
random_codings = tf.random.normal(shape= [10, 10])#隨機產生5*10(Coding)
imgs = loaded_var_ae(random_codings)

plt.figure(figsize=(10, 2))

for i in range(0,10):
plt.subplot(2, 5, 1 + i)
plt. imshow (imgs [i], cmap='binary')
plt.axis('off')

plt.show()

程式碼詳細說明

# 載入模型
loaded_var_ae = load_model('模型路徑')
  • load_model('F:/python/opencv/color_anlyce/var_decoder.h5'):載入保存在 'var_decoder.h5' 文件中的解碼器模型。load_model 函數從 HDF5 文件中讀取模型結構和權重。


# 設置隨機種子
tf.random.set_seed(1)
  • tf.random.set_seed(1):設置 TensorFlow 隨機數生成的種子,以確保結果可重複。


# 產生隨機數據
random_codings = tf.random.normal(shape=[10, 10]) # 隨機產生 10*10 (Coding)
  • tf.random.normal(shape=[10, 10]):生成形狀為 [10, 10] 的隨機數據,這些數據代表潛在空間的編碼(通常在變分自編碼器中使用)。
  • 代表等會生成10張圖


imgs = loaded_var_ae(random_codings)
  • loaded_var_ae(random_codings):使用載入的解碼器模型生成圖像。這裡的 random_codings 作為模型的輸入,模型會將這些潛在編碼轉換為圖像。


plt.figure(figsize=(20, 2))
  • plt.figure(figsize=(20, 2)):創建一個新的圖形窗口,設置其大小為 10x2 英寸。


for i in range(0,10):
plt.subplot(2, 5, 1 + i)
plt. imshow (imgs [i], cmap='binary')
plt.axis('off')
  • for i in range(0,10)::循環處理 10張生成的圖像。
  • plt.subplot(2, 5, 1 + i):設置圖形的子圖位置。這裡 2, 5 指定圖形有 2 行 5 列的子圖,1 + i 設定當前子圖的位置。
  • plt.imshow(imgs[i], cmap='binary'):顯示第 i 張生成的圖像,使用 binary 顏色映射。
  • plt.axis('off'):隱藏子圖的坐標軸。


plt.show()
  • plt.show():顯示圖形窗口。
113會員
172內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
留言0
查看全部
發表第一個留言支持創作者!
螃蟹_crab的沙龍 的其他內容
本文主要介紹,如何利用VAE變分自編碼器來訓練生成圖片。 訓練集資料將採用TF影像資料庫中的fashion_mnist VAE變分自編碼器簡單介紹 •VAE(Variational Auto-Encoder)中文名稱變分自編碼器,主要是一種將原始資料編碼到潛在向量空間,再編碼回來的神經網路。
本文下方連結的文章,利用Stable Diffusion生成512 * 512大小的圖片。 輸入的文字是 dog flying in space,此模型需輸入英文句子才會準確生成。 參考文獻 連結該作者在Hugging Face公開的模型去做使用。 本文是在Colab上執行。
長短期記憶(英語:Long Short-Term Memory,LSTM)是一種時間循環神經網路(RNN),論文首次發表於1997年。 LSTM(長短期記憶)是一種特定類型的遞歸神經網絡(RNN),在許多需要處理時間序列數據或順序數據的應用中非常有用。 以下是一些常見的 LSTM 應用:
先前上一篇是使用NLT內置的電影評論數據集 movie_reviews,來訓練出情感分析模型,此篇文章介紹可以導入自己的訓練資料集來建立情感分析模組。 [Python][自然語言]NLTK 實現電影評論情感分析 所需套件 pip install pandas pip install sci
情感分析是一種自然語言處理技術,用於自動識別和分析文本中的情感傾向,通常是正向、負向或中性。 我們可以使用 NLTK 來實現一個基於單純貝斯分類器的情感分析模型。
本文介紹了流行的Python套件NLTK(Natural Language Toolkit)的主要特點、功能和在中文和英文語料上的應用。從安裝到實際應用,深入介紹了分詞、停用詞去除、詞性標註、命名實體識別等NLP任務的具體實現和步驟,幫助讀者理解和應用NLTK。
本文主要介紹,如何利用VAE變分自編碼器來訓練生成圖片。 訓練集資料將採用TF影像資料庫中的fashion_mnist VAE變分自編碼器簡單介紹 •VAE(Variational Auto-Encoder)中文名稱變分自編碼器,主要是一種將原始資料編碼到潛在向量空間,再編碼回來的神經網路。
本文下方連結的文章,利用Stable Diffusion生成512 * 512大小的圖片。 輸入的文字是 dog flying in space,此模型需輸入英文句子才會準確生成。 參考文獻 連結該作者在Hugging Face公開的模型去做使用。 本文是在Colab上執行。
長短期記憶(英語:Long Short-Term Memory,LSTM)是一種時間循環神經網路(RNN),論文首次發表於1997年。 LSTM(長短期記憶)是一種特定類型的遞歸神經網絡(RNN),在許多需要處理時間序列數據或順序數據的應用中非常有用。 以下是一些常見的 LSTM 應用:
先前上一篇是使用NLT內置的電影評論數據集 movie_reviews,來訓練出情感分析模型,此篇文章介紹可以導入自己的訓練資料集來建立情感分析模組。 [Python][自然語言]NLTK 實現電影評論情感分析 所需套件 pip install pandas pip install sci
情感分析是一種自然語言處理技術,用於自動識別和分析文本中的情感傾向,通常是正向、負向或中性。 我們可以使用 NLTK 來實現一個基於單純貝斯分類器的情感分析模型。
本文介紹了流行的Python套件NLTK(Natural Language Toolkit)的主要特點、功能和在中文和英文語料上的應用。從安裝到實際應用,深入介紹了分詞、停用詞去除、詞性標註、命名實體識別等NLP任務的具體實現和步驟,幫助讀者理解和應用NLTK。
你可能也想看
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 下游任務是一個 Fine-Tuned 的 Transformer 任務,它從預先訓練的 Transformer 模型繼承模型和參數,故,下游任務是運行微調任務的預訓練模
Thumbnail
最近在嘗試使用不同的AI生圖方式混合出圖的方式,採用A平台的優點,並用B平台後製的手法截長補短,創造出自己更想要的小說場景,效果不錯,現在以這張圖為例,來講一下我的製作步驟。
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformer 可以透過繼承預訓練模型 (Pretrained Model) 來微調 (Fine-Tune) 以執行下游任務。 Pretrained Mo
Thumbnail
此篇調查論文探討了Diffusion模型在文字、圖片和聲音轉換為影片,以及影片衍生和編輯的應用類型。作者也介紹了U-Net架構和Vision Transformer等生成圖像架構,並詳細探討了訓練模型的方法以及不同的影像資料集來源。
前言 在閱讀《強化式學習:打造最強 AlphaZero 通用演算法》時,對一些看似基本,但是重要且會影響到之後實作的項目概念有點疑惑,覺得應該查清楚,所以搞懂後記錄下來,寫下這篇文章(應該說是筆記?)。 正文 下面這段程式碼: model = Sequential() model.add
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 再度回到 Transformer 架構中的 Encoder 部分,如下圖所示: 我現在手上有的素材如下: Embedding 訓練方式:AI說書 - 從0開始
Thumbnail
上圖是根據彩色故事腳本生成的照片與草圖。 運用圖生圖的原理,把AI視覺故事腳本的其中一個畫面。擷取出來。 輸入重新繪製這張圖片 AI 會自然根據草圖,重新繪製元素一樣的精細畫面。
前陣子自己手刻了ChatGPT,並發了一系列文章: 使用Meta釋出的模型,實作Chat GPT - Part 0 使用Meta釋出的模型,實作Chat GPT - Part 1 使用Meta釋出的模型,實作Chat GPT - Part 2 使用Meta釋出的模型,實作Chat GPT -
Thumbnail
前言 上一篇討論到如何訓練出模型,此篇將說明Streamlit建立的簡單Web應用程式的解說 Streamlit網頁App_貓狗辨識 連結 程式碼Github連結 [機器學習]CNN學習MNIST 手寫英文字母資料,用網頁展現成果_模型訓練篇 如何連動github與stramlit可以參考
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 下游任務是一個 Fine-Tuned 的 Transformer 任務,它從預先訓練的 Transformer 模型繼承模型和參數,故,下游任務是運行微調任務的預訓練模
Thumbnail
最近在嘗試使用不同的AI生圖方式混合出圖的方式,採用A平台的優點,並用B平台後製的手法截長補短,創造出自己更想要的小說場景,效果不錯,現在以這張圖為例,來講一下我的製作步驟。
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformer 可以透過繼承預訓練模型 (Pretrained Model) 來微調 (Fine-Tune) 以執行下游任務。 Pretrained Mo
Thumbnail
此篇調查論文探討了Diffusion模型在文字、圖片和聲音轉換為影片,以及影片衍生和編輯的應用類型。作者也介紹了U-Net架構和Vision Transformer等生成圖像架構,並詳細探討了訓練模型的方法以及不同的影像資料集來源。
前言 在閱讀《強化式學習:打造最強 AlphaZero 通用演算法》時,對一些看似基本,但是重要且會影響到之後實作的項目概念有點疑惑,覺得應該查清楚,所以搞懂後記錄下來,寫下這篇文章(應該說是筆記?)。 正文 下面這段程式碼: model = Sequential() model.add
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 再度回到 Transformer 架構中的 Encoder 部分,如下圖所示: 我現在手上有的素材如下: Embedding 訓練方式:AI說書 - 從0開始
Thumbnail
上圖是根據彩色故事腳本生成的照片與草圖。 運用圖生圖的原理,把AI視覺故事腳本的其中一個畫面。擷取出來。 輸入重新繪製這張圖片 AI 會自然根據草圖,重新繪製元素一樣的精細畫面。
前陣子自己手刻了ChatGPT,並發了一系列文章: 使用Meta釋出的模型,實作Chat GPT - Part 0 使用Meta釋出的模型,實作Chat GPT - Part 1 使用Meta釋出的模型,實作Chat GPT - Part 2 使用Meta釋出的模型,實作Chat GPT -
Thumbnail
前言 上一篇討論到如何訓練出模型,此篇將說明Streamlit建立的簡單Web應用程式的解說 Streamlit網頁App_貓狗辨識 連結 程式碼Github連結 [機器學習]CNN學習MNIST 手寫英文字母資料,用網頁展現成果_模型訓練篇 如何連動github與stramlit可以參考