python - 如何在谷歌 colab 中读取图像数据集以进行深度学习?
问题描述
我是深度学习的初学者。我对如何在 Google Colab 中读取图像数据集感到困惑。基本上,数据集包含 2 个用于训练和测试图像的文件夹以及 2 个用于训练和测试标签的 csv 文件。现在我需要识别我需要首先读取数据然后拆分数据的图像的舞蹈模式。
但是我尝试使用以下代码读取数据集:
zip_path = '/content/0664343c9a8f11ea.zip'
with ZipFile(zip_path) as z:
data = z.namelist()
此代码工作并读取数据,但以列表的形式。稍后我将无法将其拆分为用于创建神经网络的训练和测试。每个图像的大小也不同,那么我应该如何处理呢?
请帮助解决这个问题。将不胜感激。
谢谢普拉奇
解决方案
有很多方法可以读取图像以输入模型。一种基本方法是将图像转换为 numpy 数组。使用图像的 zip 文件,您可以采取以下步骤来获取图像的 numpy 数组。这适用于任何 Python 内核,无论是 Google Colab 还是您的本地内核。
- 解压缩图像
- 获取图片路径
- 读取图像并转换为 numpy 数组
import zipfile # unziping import glob # finding image paths import numpy as np # creating numpy arrays from skimage.io import imread # reading images from skimage.transform import resize # resizing images # 1. Unzip images path = 'your zip file path' with zipfile.ZipFile(path, 'r') as zip_ref: zip_ref.extractall('path for extracted images') # 2. Obtain paths of images (.png used for example) img_list = sorted(glob.glob('path for extracted images/*.png')) # 3. Read images & convert to numpy arrays ## create placeholding numpy arrays IMG_SIZE = 256 (image resolution of 256 x 256 used for example) x_data = np.empty((len(img_list), IMG_SIZE, IMG_SIZE, 1), dtype=np.float32) ## read and convert to arrays for i, img_path in enumerate(img_list): # read image img = imread(img_path) # resize image (1 channel used for example; 1 for gray-scale, 3 for RGB-scale) img = resize(img, output_shape=(IMG_SIZE, IMG_SIZE, 1), preserve_range=True) # save to numpy array x_data[i] = img
毕竟,您有一个x_data
包含图像的 numpy 数组。然后可以使用该数组来训练或测试您的模型。希望这可以帮助。
推荐阅读
- javascript - 将树视图容器添加到侧边栏
- firebase - 为什么加载单个文档的函数有这么多 READ 操作?
- c# - 如何在 c# UWP 中获取标签页的文本框?
- c++ - 遍历指向函数的指针数组时出错
- payment - 使用 CashApp 汇款的 URL/Deeplink
- python - PyQt5:当通过来自另一个线程的信号发送像素图时,Python 会因 SIGSEGV *有时* 而崩溃
- r - 在 R 中的多个列上重复组分析
- jquery - 针对 AWS 预签名 URL 的 PUT 请求的 SignatureDoesNotMatch
- file - 无法将任何文件上传到谷歌云存储
- c# - 音频不会在特定场景中停止播放