【小白學PyTorch】16 TF2讀取圖片的方法
阿新 • • 發佈:2020-09-30
【新聞】:機器學習煉丹術的粉絲的人工智慧交流群已經建立,目前有目標檢測、醫學影象、NLP等多個學術交流分群和水群嘮嗑的總群,歡迎大家加煉丹兄為好友,加入煉丹協會。微信:cyx645016617.
參考目錄:
[TOC]
本文的程式碼已經上傳公眾號後臺,回覆【PyTorch】獲取。
## 1 PIL讀取圖片
想要把一個圖片,轉換成RGB3通道的一個張量,我們怎麼做呢?大家第一反應應該是**PIL這個庫**吧
```python
from PIL import Image
import numpy as np
image = Image.open('./bug1.jpg')
image.show()
```
展示的圖片:
![](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c6ec1cef21344e9ebccb1ad683829fff~tplv-k3u1fbpfcp-zoom-1.image)
然後我們這個image現在是PIL格式的,我們使用```numpy.array()```來將其轉換成numpy的張量的形式:
```python
image = np.array(image)
print(image.shape)
>>>(326, 312, 3)
```
可以看到,這個第三維度是3。**對於pytorch而言,資料的第一維度應該是樣本數量,第二維度是通道數,第三四是影象的寬高,因此PIL讀入的圖片,往往需要把通道數的這個維度移動到第二維度上才能對接上pytorch的形式。(transpose方法來實現這個功能,這裡不細說)**
## 2 TF讀取圖片
下面是重點啦,對於tensorflow,tf中自己帶了一個**解碼函式**,先看一下我的檔案目錄:
![](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5852066673504167a24dc4686cf998e1~tplv-k3u1fbpfcp-zoom-1.image)
```python
import tensorflow as tf
images = tf.io.gfile.glob('./*.jpeg')
print(images,type(images))
> ['.\\bug1.jpeg', '.\\bug2