プログラムは動くのですが | python3Xのブログ

python3Xのブログ

ここでは40代、50代の方が日々の生活で役に立つ情報や私の趣味であるプログラム、Excelや科学に関する内容で投稿する予定です。

結果が伴わないので

全く別の方法で偽画像を作成することにします

本意ではありませんが

DCGANではなくBEGANを使って作成する予定です

地道な作業になるため、その一部のコードをアップします

 

コード

import sys, os
import glob
import math
import random
import numpy as np
from matplotlib import pyplot as plt
import keras
from keras import backend as K
from keras.models import Model, Sequential
from keras.layers import Conv2D, Dense, Input, MaxPooling2D, UpSampling2D, Lambda
from keras.preprocessing.image import load_img, img_to_array, array_to_img, ImageDataGenerator

 

DATA_DIR = './'
BATCH_SIZE = 16
IMAGE_SHAPE = (64, 64, 1)
data_gen = ImageDataGenerator(rescale=1/255.)
tarain_data_generator = data_gen.flow_from_directory(
    directory=DATA_DIR,
    classes = ['train'],
    batch_size=BATCH_SIZE,
    target_size=IMAGE_SHAPE[:2]
)
# Encoderの定義
def build_encoder(input_shape, z_size, n_filters, n_layers):
    """Encoderを構築する
   
    Argument:
        input_shape(int):画像のshape
        z_size(int):特徴空間の次元数
        n_filters(int):フィルタ数
       
    Returns:
        model (Model): Encoderモデル         
    """
    model = Sequential()
    model.add(
        Conv2D(
            n_filters,
            3,
            activation='eul',
            input_shape=input_shape,
            padding='same'
        )
    )
    model.add(Conv2D(n_filters, 3, padding='same'))
    for i in range(2, n_layers + 1):
        model.add(
            Conv2D(
                i*n_filters,
                3,
                activation='elu',
                padding='same'
            )
        )
        model.add(
            Conv2D(
                i*n_filters,
                3,
                activation='elu',
                padding='same'
            )
        )
        model.add(
            Conv2D(
                i*n_filters,
                3,
                activation='elu',
                stride=2,
                padding='same'
            )
        )
    model.add(Conv2D(n_layers*n_filters, 3,
                    padding='same'))
    model.add(Flatten())
    model.add(Dense(z_size))
   
    return model