第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開(kāi)發(fā)者教程

TensorFlow 入門教程

首頁(yè) 慕課教程 TensorFlow 入門教程 TensorFlow 入門教程 在 TensorBoard 之中記錄圖片數(shù)據(jù)

在 TensorBoard 之中記錄圖片數(shù)據(jù)

在之前的學(xué)習(xí)之中,我們了解了如何在 TensorBoard 之中查看 Loss 、準(zhǔn)確率等指標(biāo)的變化,也學(xué)習(xí)了如何在 TensorBoard 之中查看網(wǎng)絡(luò)模型圖。這些數(shù)據(jù)都是一些文本數(shù)據(jù),那么我們能查看一些多媒體數(shù)據(jù)?答案是可以的,那么我們這節(jié)課就來(lái)學(xué)習(xí)一下如何在 TenosrBoard 之中查看圖片數(shù)據(jù)。

1. 查看單張圖片

我們?cè)谟?xùn)練的過(guò)程之中可能要查看一下數(shù)據(jù)的基本樣式,那么我們便可以使用 TensorBoard 來(lái)進(jìn)行圖片的查看工作,這邊我們?nèi)匀灰?Mnist 數(shù)據(jù)集為例。

首先我們需要導(dǎo)入數(shù)據(jù):

import numpy as np
import tensorflow as tf

(x_train, y_train),(x_test, y_test) = tf.keras.datasets.mnist.load_data()

比如,我們要查看第一張訓(xùn)練集的圖片:

file_writer = tf.summary.create_file_writer("logs/images/1")


img = np.reshape(x_train[0], (1, 28, 28, 1))

with file_writer.as_default():
  tf.summary.image("First train data", img, step=0)

首先,我們將日志目錄定義在了 logs/images/1 文件夾下,然后我們通過(guò)以下 API 來(lái)實(shí)現(xiàn)圖片數(shù)據(jù)的輸出:

tf.summary.image("First train data", img, step=0)

其中第一個(gè)參數(shù)為名稱,也就是圖片的標(biāo)簽,第二個(gè)參數(shù)為圖片本身,第三個(gè)圖片為當(dāng)前的步數(shù),如果只查看靜態(tài)圖片,那么設(shè)置為 step=0 就看足夠了。

然后我們啟動(dòng) TensorBoard ,便可以在瀏覽器的 Image 選項(xiàng)卡之中查看到具體的圖片了:

圖片描述

通過(guò)左邊的調(diào)節(jié)器,我們可以調(diào)節(jié)明暗度和對(duì)比度。

2. 查看多張圖片

前面我們學(xué)習(xí)了如何查看單張圖片,那么如果我們想要查看很多張圖片要如何進(jìn)行呢?

其實(shí)與單張圖片的查看幾乎完全一樣,唯一不同的是,我們想要留意圖片的數(shù)量以及 Batch 的大小

with file_writer.as_default():
  images = np.reshape(x_train[:16], (-1, 28, 28, 1))
  tf.summary.image("First 16 train images", images, max_outputs=16, step=0)

在這里,我們選擇查看訓(xùn)練集的前 16 張圖片,因此,我們要將其重新 Reshape 為如下的形狀:

(圖片數(shù)量, 圖片長(zhǎng), 圖片寬, 通道數(shù)量)

因此這里便是:

(16, 28, 28, 1)

如果不想計(jì)算 Batch 數(shù)量,可以直接使用 -1 代替:

(-1, 28, 28, 1)

于是,在 TensorBoard 之中,我們便可以在 “First 16 train images” 選項(xiàng)卡下面查看到我們的 16 張圖片了:

圖片描述

3. 自定義生成圖片

在前面的學(xué)習(xí)之中,我們能輸入的圖片都是內(nèi)置的圖片或者數(shù)據(jù)集的圖片。那么我們?cè)谶@一小節(jié)便來(lái)學(xué)習(xí)一下如何將自己繪制的圖片輸入到 TensorBoard 之中。

這里涉及到一定的繪圖知識(shí),因此我們不會(huì)繪制過(guò)于復(fù)雜的圖片,我們會(huì)繪制一張簡(jiǎn)單的圖片,然后將其輸出到 TensorBoard 之中。

首先我們要繪制出一張我們自定義的圖片:


import matplotlib.pyplot as plt
import io

figure = plt.figure()

# 繪圖
x = [1, 2, 3, 4]
y = [1.2, 2.5, 4.5, 7.5]
plt.plot(x, y)

在這張圖片之中,我們簡(jiǎn)單地繪制了一條線段。然后我們便可以將其保存為 PNG 格式

# 定義緩存區(qū)
buf = io.BytesIO()
# 保存為png圖片
plt.savefig(buf, format='png')

# 關(guān)閉畫(huà)布
plt.close(figure)
buf.seek(0)

然后我們將保存好的png圖片轉(zhuǎn)化為TensorFlow的圖片格式

# 轉(zhuǎn)化為TensorFlow的圖片格式
image = tf.image.decode_png(buf.getvalue(), channels=4)
# 增添一維數(shù)據(jù),表示Batch
image = tf.expand_dims(image, 0)

最后我們便可以將圖片輸出到 TensorBoard 日志

with file_writer.as_default():
  tf.summary.image("Own Image", image, step=0)

然后我們便可以看到我們的圖片的形式:

圖片描述

4. 小結(jié)

在這節(jié)課的學(xué)習(xí)之中,我們學(xué)習(xí)了如何查看單張圖片、如何查看多張圖片,最后我們了解了如何將自定義的圖片輸出到T ensorBoard 之中。相信以上的 TensorBoard 使用技巧能夠幫助到大家。