keras 資料生成器使用小結

2021-08-19 10:04:47 字數 1856 閱讀 1528

今天嘗試用keras實現simgan,在讀入資料時遇到了幾個坑,記錄一下。

# coding: utf-8

import os

import sys

import keras

from keras import layers

from keras import models

from keras import optimizers

from keras.preprocessing import image

import h5py

import numpy as np

import tensorflow as tf

from hs_util import *

from gen_captcha import *

from const import *

os.environ['cuda_visible_devices'] = '0' # 指定哪張卡:0, 1, 2, ...

config = tf.configproto()

config.gpu_options.allow_growth = true # 隨著程序逐漸增加視訊記憶體占用,而不是一下佔滿

config.gpu_options.per_process_gpu_memory_fraction = 0.2

sess = tf.session(config = config)

# 影象大小

img_height = image_height

img_width = image_width

img_channels = num_channels

#定義影象資料生成器

# datagen = image.imagedatagenerator(

# data_format='channels_last')

datagen = image.imagedatagenerator(

data_format='channels_last')

flow_from_directory_params =

flow_params =

real_generator = datagen.flow_from_directory(

'./data/real',# 儲存真實資料的本地路徑,注意在這個路徑下還有子資料夾,子資料夾下是資料

**flow_from_directory_params

)real_image_batch = get_image_batch_real(real_generator)

plot_batch(real_image_batch) #顯示batch資料

def plot_batch(image_batch1,image_batch2, figure_path,):

fig, axs = plt.subplots(window_row,4)

for i in range(window_row):

axs[i,0].imshow(image_batch1[i*4]/255,cmap='gray') #因為imagedatagenerater生成的資料是0-255的float型別,所以需要/255做歸一化才能正常顯示。

axs[i,1].imshow(image_batch1[i*4+1]/255, cmap='gray') # cmap的引數設定也需要看一下plt的文件

axs[i,2].imshow(image_batch1[i*4+2]/255, cmap='gray')

axs[i,3].imshow(image_batch1[i*4+3]/255, cmap='gray')

plt.show()

python生成器使用方式

生成器是一種特殊的迭代器。生成器的第一種建立方式 生成器就是將列表的中括號程式設計小括號即可 nums x for x in range 10 結果 0,1,2,3,4,5,6,7,8,9 nums x for x in range 10 結果 at for num in nums print nu...

Jazzy 文件生成器使用

jazzy 文件生成器使用 jazzy 是乙個命令列實用程式,可以為 swift 或者 objective c 生成文件,輸出風格和官方文件匹配 也可以自定義模板 如果是 swift和 objective c 混合專案生成文件,需要通過 sourcekitten 生成分別生成 swift和 obje...

迭代器和生成器,使用生成器讀取大檔案

可迭代型別 和 迭代器 什麼是迭代協議。迭代器是什麼?是訪問集合類的一種方式,一般用來遍歷資料。for迴圈可以遍歷資料 迭代器和以下標的訪問方式不一樣,迭代器是不能返回的 後退 alist 0 alist 2 alist 1 是不行的 下標訪問 背後的原理 協議 是 getitem 迭代器提供了一種...