alex_bn_lee

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

【625】keras.utils.Sequence 制作生成集

tensorflow.keras.utils.Sequence的使用

keras 官网 - Sequence

Unet Xception Keras for Pneumothorax Segmentation

  用于拟合数据序列的基对象,例如一个数据集。

  每一个 Sequence 必须实现 __getitem__ 和 __len__ 方法。 如果你想在迭代之间修改你的数据集,你可以实现 on_epoch_end。 __getitem__ 方法应该范围一个完整的批次。

  例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from skimage.io import imread
from skimage.transform import resize
import numpy as np
 
# 这里,`x_set` 是图像的路径列表
# 以及 `y_set` 是对应的类别
 
class DataGenerator(Sequence):
 
    # 初始化类
    def __init__(self, x_set, y_set, batch_size):
        self.x, self.y = x_set, y_set
        self.batch_size = batch_size
 
    # 返回batch_size的个数,也就是完整跑一遍数据要运行模型多少次
    def __len__(self):
        return int(np.ceil(len(self.x) / float(self.batch_size)))
 
    # 返回一个batch_size的数据 (data, label)
    # 直接输入到模型的形式
    # input: (2, 512, 512, 3)
    # label: (2, 512, 512, 1)
    def __getitem__(self, idx):
        batch_x = self.x[idx * self.batch_size:(idx + 1) * self.batch_size]
        batch_y = self.y[idx * self.batch_size:(idx + 1) * self.batch_size]
 
        # 获取一个批次的全部数据,并构建为x_arr
        x_arr = []
        for file_name in batch_x:
            img = resize(imread(file_name), (200, 200))
            x_arr.append(np.array(img))
 
        x = np.array(x_arr)
        y = np.array(batch_y)
 
        return x, y

 

posted on   McDelfino  阅读(439)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2014-07-28 【145】◀▶ .NET Framework类库索引
2012-07-28 【065】◀▶ Android (II) - Java 等
点击右上角即可分享
微信分享提示