呈上篇介紹如何訓練模型,此篇就主要介紹如何利用訓練好的模型來生成圖片
[深度學習][Python]DCGAN訓練生成手寫阿拉伯數字_訓練篇
生成的結果
生成的圖片大小會根據,當初設置的生成器輸出大小來決定,當你使用生成對抗網絡(GAN)生成圖像時,生成器模型的最後一層通常會決定生成圖像的大小和通道數。
Python及套件版本
Python version: 3.11.3
NumPy version: 1.24.2
Matplotlib version: 3.7.1
tensorflow version: 2.13.0
程式碼
- 載入模型: 使用
load_model
函數從指定的路徑載入預訓練的生成模型(GAN 模型)。 - 生成雜訊向量: 使用
tf.random.normal
生成隨機雜訊向量。 - 生成圖像: 通過生成模型(
generator
)來生成圖像。 - 顯示圖像: 使用
plot_multiple_images
函數顯示生成的圖像。
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
from tensorflow import keras
from keras.models import load_model
# 繪製生成圖像用
def plot_multiple_images (images, n=None):
if images.shape [-1] == 1:
images = np. squeeze (images, axis=-1)
plt.figure(figsize=(n, 2))
for i in range(n):
plt.subplot(2, int(n/2), i + 1)
plt. imshow (images [i], cmap="binary")
plt.axis ("off")
plt.show ()
# 載入模型
generator = load_model('載入模型')
noise_dim = 100 # 雜訊向量大小
num_examples_to_generate = 16 # 生成筆數
# 產生亂數(雜訊)
seed = tf.random.normal([num_examples_to_generate, noise_dim])
# 生成圖片
generated_images = generator (seed)
# 顯示圖片
plot_multiple_images (generated_images, 10)
生成器輸出大小
- 模型設計: 生成器模型的設計會決定輸出的圖像大小。例如,如果你的生成器模型的最後一層使用了
Conv2D
層,則該層的輸出大小會決定生成的圖像的大小。 - 維度調整: 在生成圖像之前,確保生成器的輸出形狀符合你的期望。例如,如果生成器輸出的圖像大小是
64x64
像素,那麼你應該在顯示這些圖像時使用64x64
的維度進行重塑。