pytorch实现kmeans(自己的图像数据集)
上篇笔记已经介绍了,如何加载自己的图像数据集。(加载数据集: https://blog.youkuaiyun.com/hnu_zzt/article/details/84766049 ) 这篇笔记介绍对自己的图像数据集用kmeans聚类。为了方便演示,我的数据集是1000张3×64×64的彩色图片,均放在test文件夹下。只需修改下文件夹路径就可以实现。详细代码和注释如下:
import torch
from torch.utils import data
from PIL import Image
import numpy as np
from torchvision import transforms
from numpy import *
transform = transforms.Compose([
transforms.ToTensor(), # 将图片转换为Tensor,归一化至[0,1]
# transforms.Normalize(mean=[.5, .5, .5], std=[.5, .5, .5]) # 标准化至[-1,1]
])
# 定义自己的数据集合
class FlameSet(data.Dataset):
def __init__(self, root):
# 所有图片的绝对路径
imgs = os.listdir(root)
self.imgs = [os.path.join(root, k) for k in imgs]
self.transforms = transform
def __getitem__(self, index):
img_path