亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

不調整大小的 DataGenerator(Sequence)

不調整大小的 DataGenerator(Sequence)

森林海 2023-02-15 16:40:15
我創建了一個DataGenerator(Sequence)定義batch_size,batch_x和 的類batch_y。batch_x是一批圖像(來自x_set,圖像的文件路徑列表),由 讀入imread,調整大小resize并除以 255 以獲得 0 到 1 之間的值。batch_y這些圖像的標簽來自y_set,a包含所有標簽的列表。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    def __len__(self):        return math.ceil(len(self.x) / self.batch_size)    def __getitem__(self, idx):        batch_x = self.x[idx*self.batch_size : (idx + 1)*self.batch_size]        batch_x = np.array([resize(imread(file_name), (64, 128)) for file_name in batch_x])        batch_x = batch_x * 1./255        batch_y = self.y[idx*self.batch_size : (idx + 1)*self.batch_size]        batch_y = np.array(batch_y)        return batch_x, batch_y因為這個生成器可以工作但在 Colab 上需要很長時間,所以我之前調整了圖像的大小。因此,這不再是必需的,我現在想修改DataGenerator并保留該resize功能。這是我的代碼DataGenerator_withoutresize(Sequence):class DataGenerator_withoutresize(Sequence):    def __init__(self, x_set, y_set, batch_size):        self.x, self.y = x_set, y_set        self.batch_size = batch_size    def __len__(self):        return math.ceil(len(self.x) / self.batch_size)    def __getitem__(self, idx):        batch_x = self.x[idx*self.batch_size : (idx + 1)*self.batch_size]        batch_x = np.array([(imread(file_name) for file_name in batch_x])        batch_x = batch_x * 1./255        batch_y = self.y[idx*self.batch_size : (idx + 1)*self.batch_size]        batch_y = np.array(batch_y)        return batch_x, batch_y這段代碼正確嗎?
查看完整描述

1 回答

?
楊魅力

TA貢獻1811條經驗 獲得超6個贊

最后,我使用了這段代碼,它對我有用:


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


    def __len__(self):

        return math.ceil(len(self.x) / self.batch_size)


    def __getitem__(self, idx):

        batch_x = self.x[idx*self.batch_size : (idx + 1)*self.batch_size]

        batch_x = [imread(file_name) for file_name in batch_x]

        batch_x = np.array(batch_x)

        batch_x = batch_x * 1./255

        batch_y = self.y[idx*self.batch_size : (idx + 1)*self.batch_size]

        batch_y = np.array(batch_y)


        return batch_x, batch_y


查看完整回答
反對 回復 2023-02-15
  • 1 回答
  • 0 關注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號