{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# CycleGAN 모네 그림 그리기" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 라이브러리 임포트" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Note: 이 노트북의 코드를 실행하려면 `keras_contrib` 패키지를 설치해야 합니다. 다음 셀의 주석을 제거하고 실행하여 패키지를 설치하세요*" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "#!pip install git+https://www.github.com/keras-team/keras-contrib.git" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Using TensorFlow backend.\n", "/home/haesun/github/GDL_code/env/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:516: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", " _np_qint8 = np.dtype([(\"qint8\", np.int8, 1)])\n", "/home/haesun/github/GDL_code/env/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:517: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", " _np_quint8 = np.dtype([(\"quint8\", np.uint8, 1)])\n", "/home/haesun/github/GDL_code/env/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:518: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", " _np_qint16 = np.dtype([(\"qint16\", np.int16, 1)])\n", "/home/haesun/github/GDL_code/env/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:519: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", " _np_quint16 = np.dtype([(\"quint16\", np.uint16, 1)])\n", "/home/haesun/github/GDL_code/env/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:520: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", " _np_qint32 = np.dtype([(\"qint32\", np.int32, 1)])\n", "/home/haesun/github/GDL_code/env/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", " np_resource = np.dtype([(\"resource\", np.ubyte, 1)])\n", "/home/haesun/github/GDL_code/env/lib/python3.7/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:541: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", " _np_qint8 = np.dtype([(\"qint8\", np.int8, 1)])\n", "/home/haesun/github/GDL_code/env/lib/python3.7/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:542: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", " _np_quint8 = np.dtype([(\"quint8\", np.uint8, 1)])\n", "/home/haesun/github/GDL_code/env/lib/python3.7/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:543: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", " _np_qint16 = np.dtype([(\"qint16\", np.int16, 1)])\n", "/home/haesun/github/GDL_code/env/lib/python3.7/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:544: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", " _np_quint16 = np.dtype([(\"quint16\", np.uint16, 1)])\n", "/home/haesun/github/GDL_code/env/lib/python3.7/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:545: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", " _np_qint32 = np.dtype([(\"qint32\", np.int32, 1)])\n", "/home/haesun/github/GDL_code/env/lib/python3.7/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:550: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", " np_resource = np.dtype([(\"resource\", np.ubyte, 1)])\n" ] } ], "source": [ "import os\n", "import matplotlib.pyplot as plt\n", "\n", "from models.cycleGAN import CycleGAN\n", "from utils.loaders import DataLoader" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# run params\n", "SECTION = 'paint'\n", "RUN_ID = '0001'\n", "DATA_NAME = 'monet2photo'\n", "RUN_FOLDER = 'run/{}/'.format(SECTION)\n", "RUN_FOLDER += '_'.join([RUN_ID, DATA_NAME])\n", "\n", "if not os.path.exists(RUN_FOLDER):\n", " os.mkdir(RUN_FOLDER)\n", " os.mkdir(os.path.join(RUN_FOLDER, 'viz'))\n", " os.mkdir(os.path.join(RUN_FOLDER, 'images'))\n", " os.mkdir(os.path.join(RUN_FOLDER, 'weights'))\n", "\n", "mode = 'build' # 'build' # " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 데이터 적재" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "노트북을 처음 실행할 때 다음 셀의 주석을 제거하고 실행하여 모네 데이터셋을 다운로드하세요." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#!./scripts/download_cyclegan_data.sh monet2photo" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "IMAGE_SIZE = 256" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "data_loader = DataLoader(dataset_name=DATA_NAME, img_res=(IMAGE_SIZE, IMAGE_SIZE))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 모델 생성" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "WARNING: Logging before flag parsing goes to stderr.\n", "W0912 14:49:53.332440 139737801561920 deprecation_wrapper.py:119] From /home/haesun/github/GDL_code/env/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", "\n", "W0912 14:49:53.341466 139737801561920 deprecation_wrapper.py:119] From /home/haesun/github/GDL_code/env/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", "\n", "W0912 14:49:53.343534 139737801561920 deprecation_wrapper.py:119] From /home/haesun/github/GDL_code/env/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:4115: The name tf.random_normal is deprecated. Please use tf.random.normal instead.\n", "\n", "W0912 14:49:53.459866 139737801561920 deprecation_wrapper.py:119] From /home/haesun/github/GDL_code/env/lib/python3.7/site-packages/keras/optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", "\n" ] } ], "source": [ "gan = CycleGAN(\n", " input_dim = (IMAGE_SIZE,IMAGE_SIZE,3)\n", " , learning_rate = 0.0002\n", " , lambda_validation = 1\n", " , lambda_reconstr = 10\n", " , lambda_id = 5\n", " , generator_type = 'resnet'\n", " , gen_n_filters = 32\n", " , disc_n_filters = 64\n", " )\n", "\n", "if mode == 'build':\n", " gan.save(RUN_FOLDER)\n", "else:\n", " gan.load_weights(os.path.join(RUN_FOLDER, 'weights/weights.h5'))" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "__________________________________________________________________________________________________\n", "Layer (type) Output Shape Param # Connected to \n", "==================================================================================================\n", "input_4 (InputLayer) (None, 256, 256, 3) 0 \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_21 (Reflec (None, 262, 262, 3) 0 input_4[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_33 (Conv2D) (None, 256, 256, 32) 4736 reflection_padding2d_21[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_30 (Inst (None, 256, 256, 32) 0 conv2d_33[0][0] \n", "__________________________________________________________________________________________________\n", "activation_16 (Activation) (None, 256, 256, 32) 0 instance_normalization_30[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_34 (Conv2D) (None, 128, 128, 64) 18496 activation_16[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_31 (Inst (None, 128, 128, 64) 0 conv2d_34[0][0] \n", "__________________________________________________________________________________________________\n", "activation_17 (Activation) (None, 128, 128, 64) 0 instance_normalization_31[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_35 (Conv2D) (None, 64, 64, 128) 73856 activation_17[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_32 (Inst (None, 64, 64, 128) 0 conv2d_35[0][0] \n", "__________________________________________________________________________________________________\n", "activation_18 (Activation) (None, 64, 64, 128) 0 instance_normalization_32[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_22 (Reflec (None, 66, 66, 128) 0 activation_18[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_36 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_22[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_33 (Inst (None, 64, 64, 128) 0 conv2d_36[0][0] \n", "__________________________________________________________________________________________________\n", "activation_19 (Activation) (None, 64, 64, 128) 0 instance_normalization_33[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_23 (Reflec (None, 66, 66, 128) 0 activation_19[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_37 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_23[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_34 (Inst (None, 64, 64, 128) 0 conv2d_37[0][0] \n", "__________________________________________________________________________________________________\n", "add_10 (Add) (None, 64, 64, 128) 0 activation_18[0][0] \n", " instance_normalization_34[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_24 (Reflec (None, 66, 66, 128) 0 add_10[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_38 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_24[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_35 (Inst (None, 64, 64, 128) 0 conv2d_38[0][0] \n", "__________________________________________________________________________________________________\n", "activation_20 (Activation) (None, 64, 64, 128) 0 instance_normalization_35[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_25 (Reflec (None, 66, 66, 128) 0 activation_20[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_39 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_25[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_36 (Inst (None, 64, 64, 128) 0 conv2d_39[0][0] \n", "__________________________________________________________________________________________________\n", "add_11 (Add) (None, 64, 64, 128) 0 add_10[0][0] \n", " instance_normalization_36[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_26 (Reflec (None, 66, 66, 128) 0 add_11[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_40 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_26[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_37 (Inst (None, 64, 64, 128) 0 conv2d_40[0][0] \n", "__________________________________________________________________________________________________\n", "activation_21 (Activation) (None, 64, 64, 128) 0 instance_normalization_37[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_27 (Reflec (None, 66, 66, 128) 0 activation_21[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_41 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_27[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_38 (Inst (None, 64, 64, 128) 0 conv2d_41[0][0] \n", "__________________________________________________________________________________________________\n", "add_12 (Add) (None, 64, 64, 128) 0 add_11[0][0] \n", " instance_normalization_38[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_28 (Reflec (None, 66, 66, 128) 0 add_12[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_42 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_28[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_39 (Inst (None, 64, 64, 128) 0 conv2d_42[0][0] \n", "__________________________________________________________________________________________________\n", "activation_22 (Activation) (None, 64, 64, 128) 0 instance_normalization_39[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_29 (Reflec (None, 66, 66, 128) 0 activation_22[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_43 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_29[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_40 (Inst (None, 64, 64, 128) 0 conv2d_43[0][0] \n", "__________________________________________________________________________________________________\n", "add_13 (Add) (None, 64, 64, 128) 0 add_12[0][0] \n", " instance_normalization_40[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_30 (Reflec (None, 66, 66, 128) 0 add_13[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_44 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_30[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_41 (Inst (None, 64, 64, 128) 0 conv2d_44[0][0] \n", "__________________________________________________________________________________________________\n", "activation_23 (Activation) (None, 64, 64, 128) 0 instance_normalization_41[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_31 (Reflec (None, 66, 66, 128) 0 activation_23[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_45 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_31[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_42 (Inst (None, 64, 64, 128) 0 conv2d_45[0][0] \n", "__________________________________________________________________________________________________\n", "add_14 (Add) (None, 64, 64, 128) 0 add_13[0][0] \n", " instance_normalization_42[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_32 (Reflec (None, 66, 66, 128) 0 add_14[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_46 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_32[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_43 (Inst (None, 64, 64, 128) 0 conv2d_46[0][0] \n", "__________________________________________________________________________________________________\n", "activation_24 (Activation) (None, 64, 64, 128) 0 instance_normalization_43[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_33 (Reflec (None, 66, 66, 128) 0 activation_24[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_47 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_33[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_44 (Inst (None, 64, 64, 128) 0 conv2d_47[0][0] \n", "__________________________________________________________________________________________________\n", "add_15 (Add) (None, 64, 64, 128) 0 add_14[0][0] \n", " instance_normalization_44[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_34 (Reflec (None, 66, 66, 128) 0 add_15[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_48 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_34[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_45 (Inst (None, 64, 64, 128) 0 conv2d_48[0][0] \n", "__________________________________________________________________________________________________\n", "activation_25 (Activation) (None, 64, 64, 128) 0 instance_normalization_45[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_35 (Reflec (None, 66, 66, 128) 0 activation_25[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_49 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_35[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_46 (Inst (None, 64, 64, 128) 0 conv2d_49[0][0] \n", "__________________________________________________________________________________________________\n", "add_16 (Add) (None, 64, 64, 128) 0 add_15[0][0] \n", " instance_normalization_46[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_36 (Reflec (None, 66, 66, 128) 0 add_16[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_50 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_36[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_47 (Inst (None, 64, 64, 128) 0 conv2d_50[0][0] \n", "__________________________________________________________________________________________________\n", "activation_26 (Activation) (None, 64, 64, 128) 0 instance_normalization_47[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_37 (Reflec (None, 66, 66, 128) 0 activation_26[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_51 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_37[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_48 (Inst (None, 64, 64, 128) 0 conv2d_51[0][0] \n", "__________________________________________________________________________________________________\n", "add_17 (Add) (None, 64, 64, 128) 0 add_16[0][0] \n", " instance_normalization_48[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_38 (Reflec (None, 66, 66, 128) 0 add_17[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_52 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_38[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_49 (Inst (None, 64, 64, 128) 0 conv2d_52[0][0] \n", "__________________________________________________________________________________________________\n", "activation_27 (Activation) (None, 64, 64, 128) 0 instance_normalization_49[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_39 (Reflec (None, 66, 66, 128) 0 activation_27[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_53 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_39[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_50 (Inst (None, 64, 64, 128) 0 conv2d_53[0][0] \n", "__________________________________________________________________________________________________\n", "add_18 (Add) (None, 64, 64, 128) 0 add_17[0][0] \n", " instance_normalization_50[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_transpose_3 (Conv2DTrans (None, 128, 128, 64) 73792 add_18[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_51 (Inst (None, 128, 128, 64) 0 conv2d_transpose_3[0][0] \n", "__________________________________________________________________________________________________\n", "activation_28 (Activation) (None, 128, 128, 64) 0 instance_normalization_51[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_transpose_4 (Conv2DTrans (None, 256, 256, 32) 18464 activation_28[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_52 (Inst (None, 256, 256, 32) 0 conv2d_transpose_4[0][0] \n", "__________________________________________________________________________________________________\n", "activation_29 (Activation) (None, 256, 256, 32) 0 instance_normalization_52[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_40 (Reflec (None, 262, 262, 32) 0 activation_29[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_54 (Conv2D) (None, 256, 256, 3) 4707 reflection_padding2d_40[0][0] \n", "__________________________________________________________________________________________________\n", "activation_30 (Activation) (None, 256, 256, 3) 0 conv2d_54[0][0] \n", "==================================================================================================\n", "Total params: 2,850,563\n", "Trainable params: 2,850,563\n", "Non-trainable params: 0\n", "__________________________________________________________________________________________________\n" ] } ], "source": [ "gan.g_BA.summary()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "__________________________________________________________________________________________________\n", "Layer (type) Output Shape Param # Connected to \n", "==================================================================================================\n", "input_3 (InputLayer) (None, 256, 256, 3) 0 \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_1 (Reflect (None, 262, 262, 3) 0 input_3[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_11 (Conv2D) (None, 256, 256, 32) 4736 reflection_padding2d_1[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_7 (Insta (None, 256, 256, 32) 0 conv2d_11[0][0] \n", "__________________________________________________________________________________________________\n", "activation_1 (Activation) (None, 256, 256, 32) 0 instance_normalization_7[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_12 (Conv2D) (None, 128, 128, 64) 18496 activation_1[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_8 (Insta (None, 128, 128, 64) 0 conv2d_12[0][0] \n", "__________________________________________________________________________________________________\n", "activation_2 (Activation) (None, 128, 128, 64) 0 instance_normalization_8[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_13 (Conv2D) (None, 64, 64, 128) 73856 activation_2[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_9 (Insta (None, 64, 64, 128) 0 conv2d_13[0][0] \n", "__________________________________________________________________________________________________\n", "activation_3 (Activation) (None, 64, 64, 128) 0 instance_normalization_9[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_2 (Reflect (None, 66, 66, 128) 0 activation_3[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_14 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_2[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_10 (Inst (None, 64, 64, 128) 0 conv2d_14[0][0] \n", "__________________________________________________________________________________________________\n", "activation_4 (Activation) (None, 64, 64, 128) 0 instance_normalization_10[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_3 (Reflect (None, 66, 66, 128) 0 activation_4[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_15 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_3[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_11 (Inst (None, 64, 64, 128) 0 conv2d_15[0][0] \n", "__________________________________________________________________________________________________\n", "add_1 (Add) (None, 64, 64, 128) 0 activation_3[0][0] \n", " instance_normalization_11[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_4 (Reflect (None, 66, 66, 128) 0 add_1[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_16 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_4[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_12 (Inst (None, 64, 64, 128) 0 conv2d_16[0][0] \n", "__________________________________________________________________________________________________\n", "activation_5 (Activation) (None, 64, 64, 128) 0 instance_normalization_12[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_5 (Reflect (None, 66, 66, 128) 0 activation_5[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_17 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_5[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_13 (Inst (None, 64, 64, 128) 0 conv2d_17[0][0] \n", "__________________________________________________________________________________________________\n", "add_2 (Add) (None, 64, 64, 128) 0 add_1[0][0] \n", " instance_normalization_13[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_6 (Reflect (None, 66, 66, 128) 0 add_2[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_18 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_6[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_14 (Inst (None, 64, 64, 128) 0 conv2d_18[0][0] \n", "__________________________________________________________________________________________________\n", "activation_6 (Activation) (None, 64, 64, 128) 0 instance_normalization_14[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_7 (Reflect (None, 66, 66, 128) 0 activation_6[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_19 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_7[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_15 (Inst (None, 64, 64, 128) 0 conv2d_19[0][0] \n", "__________________________________________________________________________________________________\n", "add_3 (Add) (None, 64, 64, 128) 0 add_2[0][0] \n", " instance_normalization_15[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_8 (Reflect (None, 66, 66, 128) 0 add_3[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_20 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_8[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_16 (Inst (None, 64, 64, 128) 0 conv2d_20[0][0] \n", "__________________________________________________________________________________________________\n", "activation_7 (Activation) (None, 64, 64, 128) 0 instance_normalization_16[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_9 (Reflect (None, 66, 66, 128) 0 activation_7[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_21 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_9[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_17 (Inst (None, 64, 64, 128) 0 conv2d_21[0][0] \n", "__________________________________________________________________________________________________\n", "add_4 (Add) (None, 64, 64, 128) 0 add_3[0][0] \n", " instance_normalization_17[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_10 (Reflec (None, 66, 66, 128) 0 add_4[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_22 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_10[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_18 (Inst (None, 64, 64, 128) 0 conv2d_22[0][0] \n", "__________________________________________________________________________________________________\n", "activation_8 (Activation) (None, 64, 64, 128) 0 instance_normalization_18[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_11 (Reflec (None, 66, 66, 128) 0 activation_8[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_23 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_11[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_19 (Inst (None, 64, 64, 128) 0 conv2d_23[0][0] \n", "__________________________________________________________________________________________________\n", "add_5 (Add) (None, 64, 64, 128) 0 add_4[0][0] \n", " instance_normalization_19[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_12 (Reflec (None, 66, 66, 128) 0 add_5[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_24 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_12[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_20 (Inst (None, 64, 64, 128) 0 conv2d_24[0][0] \n", "__________________________________________________________________________________________________\n", "activation_9 (Activation) (None, 64, 64, 128) 0 instance_normalization_20[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_13 (Reflec (None, 66, 66, 128) 0 activation_9[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_25 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_13[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_21 (Inst (None, 64, 64, 128) 0 conv2d_25[0][0] \n", "__________________________________________________________________________________________________\n", "add_6 (Add) (None, 64, 64, 128) 0 add_5[0][0] \n", " instance_normalization_21[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_14 (Reflec (None, 66, 66, 128) 0 add_6[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_26 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_14[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_22 (Inst (None, 64, 64, 128) 0 conv2d_26[0][0] \n", "__________________________________________________________________________________________________\n", "activation_10 (Activation) (None, 64, 64, 128) 0 instance_normalization_22[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_15 (Reflec (None, 66, 66, 128) 0 activation_10[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_27 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_15[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_23 (Inst (None, 64, 64, 128) 0 conv2d_27[0][0] \n", "__________________________________________________________________________________________________\n", "add_7 (Add) (None, 64, 64, 128) 0 add_6[0][0] \n", " instance_normalization_23[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_16 (Reflec (None, 66, 66, 128) 0 add_7[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_28 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_16[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_24 (Inst (None, 64, 64, 128) 0 conv2d_28[0][0] \n", "__________________________________________________________________________________________________\n", "activation_11 (Activation) (None, 64, 64, 128) 0 instance_normalization_24[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_17 (Reflec (None, 66, 66, 128) 0 activation_11[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_29 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_17[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_25 (Inst (None, 64, 64, 128) 0 conv2d_29[0][0] \n", "__________________________________________________________________________________________________\n", "add_8 (Add) (None, 64, 64, 128) 0 add_7[0][0] \n", " instance_normalization_25[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_18 (Reflec (None, 66, 66, 128) 0 add_8[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_30 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_18[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_26 (Inst (None, 64, 64, 128) 0 conv2d_30[0][0] \n", "__________________________________________________________________________________________________\n", "activation_12 (Activation) (None, 64, 64, 128) 0 instance_normalization_26[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_19 (Reflec (None, 66, 66, 128) 0 activation_12[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_31 (Conv2D) (None, 64, 64, 128) 147584 reflection_padding2d_19[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_27 (Inst (None, 64, 64, 128) 0 conv2d_31[0][0] \n", "__________________________________________________________________________________________________\n", "add_9 (Add) (None, 64, 64, 128) 0 add_8[0][0] \n", " instance_normalization_27[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_transpose_1 (Conv2DTrans (None, 128, 128, 64) 73792 add_9[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_28 (Inst (None, 128, 128, 64) 0 conv2d_transpose_1[0][0] \n", "__________________________________________________________________________________________________\n", "activation_13 (Activation) (None, 128, 128, 64) 0 instance_normalization_28[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_transpose_2 (Conv2DTrans (None, 256, 256, 32) 18464 activation_13[0][0] \n", "__________________________________________________________________________________________________\n", "instance_normalization_29 (Inst (None, 256, 256, 32) 0 conv2d_transpose_2[0][0] \n", "__________________________________________________________________________________________________\n", "activation_14 (Activation) (None, 256, 256, 32) 0 instance_normalization_29[0][0] \n", "__________________________________________________________________________________________________\n", "reflection_padding2d_20 (Reflec (None, 262, 262, 32) 0 activation_14[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_32 (Conv2D) (None, 256, 256, 3) 4707 reflection_padding2d_20[0][0] \n", "__________________________________________________________________________________________________\n", "activation_15 (Activation) (None, 256, 256, 3) 0 conv2d_32[0][0] \n", "==================================================================================================\n", "Total params: 2,850,563\n", "Trainable params: 2,850,563\n", "Non-trainable params: 0\n", "__________________________________________________________________________________________________\n" ] } ], "source": [ "gan.g_AB.summary()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "input_1 (InputLayer) (None, 256, 256, 3) 0 \n", "_________________________________________________________________\n", "conv2d_1 (Conv2D) (None, 128, 128, 64) 3136 \n", "_________________________________________________________________\n", "leaky_re_lu_1 (LeakyReLU) (None, 128, 128, 64) 0 \n", "_________________________________________________________________\n", "conv2d_2 (Conv2D) (None, 64, 64, 128) 131200 \n", "_________________________________________________________________\n", "instance_normalization_1 (In (None, 64, 64, 128) 0 \n", "_________________________________________________________________\n", "leaky_re_lu_2 (LeakyReLU) (None, 64, 64, 128) 0 \n", "_________________________________________________________________\n", "conv2d_3 (Conv2D) (None, 32, 32, 256) 524544 \n", "_________________________________________________________________\n", "instance_normalization_2 (In (None, 32, 32, 256) 0 \n", "_________________________________________________________________\n", "leaky_re_lu_3 (LeakyReLU) (None, 32, 32, 256) 0 \n", "_________________________________________________________________\n", "conv2d_4 (Conv2D) (None, 32, 32, 512) 2097664 \n", "_________________________________________________________________\n", "instance_normalization_3 (In (None, 32, 32, 512) 0 \n", "_________________________________________________________________\n", "leaky_re_lu_4 (LeakyReLU) (None, 32, 32, 512) 0 \n", "_________________________________________________________________\n", "conv2d_5 (Conv2D) (None, 32, 32, 1) 8193 \n", "=================================================================\n", "Total params: 2,764,737\n", "Trainable params: 2,764,737\n", "Non-trainable params: 0\n", "_________________________________________________________________\n" ] } ], "source": [ "gan.d_A.summary()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "input_2 (InputLayer) (None, 256, 256, 3) 0 \n", "_________________________________________________________________\n", "conv2d_6 (Conv2D) (None, 128, 128, 64) 3136 \n", "_________________________________________________________________\n", "leaky_re_lu_5 (LeakyReLU) (None, 128, 128, 64) 0 \n", "_________________________________________________________________\n", "conv2d_7 (Conv2D) (None, 64, 64, 128) 131200 \n", "_________________________________________________________________\n", "instance_normalization_4 (In (None, 64, 64, 128) 0 \n", "_________________________________________________________________\n", "leaky_re_lu_6 (LeakyReLU) (None, 64, 64, 128) 0 \n", "_________________________________________________________________\n", "conv2d_8 (Conv2D) (None, 32, 32, 256) 524544 \n", "_________________________________________________________________\n", "instance_normalization_5 (In (None, 32, 32, 256) 0 \n", "_________________________________________________________________\n", "leaky_re_lu_7 (LeakyReLU) (None, 32, 32, 256) 0 \n", "_________________________________________________________________\n", "conv2d_9 (Conv2D) (None, 32, 32, 512) 2097664 \n", "_________________________________________________________________\n", "instance_normalization_6 (In (None, 32, 32, 512) 0 \n", "_________________________________________________________________\n", "leaky_re_lu_8 (LeakyReLU) (None, 32, 32, 512) 0 \n", "_________________________________________________________________\n", "conv2d_10 (Conv2D) (None, 32, 32, 1) 8193 \n", "=================================================================\n", "Total params: 2,764,737\n", "Trainable params: 2,764,737\n", "Non-trainable params: 0\n", "_________________________________________________________________\n" ] } ], "source": [ "gan.d_B.summary()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 모델 훈련" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "BATCH_SIZE = 1\n", "EPOCHS = 3\n", "PRINT_EVERY_N_BATCHES = 10\n", "\n", "TEST_A_FILE = '00490.jpg'\n", "TEST_B_FILE = '2014-08-02 15:56:41.jpg'" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[Epoch 0/3] [Batch 0/1072] [D loss: 7.575333, acc: 19%] [G loss: 19.697056, adv: 4.284616, recon: 1.022657, id: 1.037174] time: 0:00:00.561588 \n", "[Epoch 0/3] [Batch 100/1072] [D loss: 0.308137, acc: 51%] [G loss: 8.354052, adv: 0.683501, recon: 0.518691, id: 0.496729] time: 0:01:33.732437 \n", "[Epoch 0/3] [Batch 200/1072] [D loss: 0.321093, acc: 43%] [G loss: 8.777274, adv: 0.920423, recon: 0.520049, id: 0.531272] time: 0:03:01.702624 \n", "[Epoch 0/3] [Batch 300/1072] [D loss: 0.371281, acc: 42%] [G loss: 8.887959, adv: 0.731951, recon: 0.529609, id: 0.571985] time: 0:05:09.705403 \n", "[Epoch 0/3] [Batch 400/1072] [D loss: 0.328014, acc: 51%] [G loss: 10.742006, adv: 0.460621, recon: 0.691166, id: 0.673944] time: 0:07:10.213803 \n", "[Epoch 0/3] [Batch 500/1072] [D loss: 0.430452, acc: 40%] [G loss: 9.262989, adv: 0.777323, recon: 0.585307, id: 0.526520] time: 0:09:08.632643 \n", "[Epoch 0/3] [Batch 600/1072] [D loss: 0.172187, acc: 76%] [G loss: 13.848490, adv: 0.943508, recon: 0.870875, id: 0.839246] time: 0:11:01.877897 \n", "[Epoch 0/3] [Batch 700/1072] [D loss: 0.327447, acc: 51%] [G loss: 6.861864, adv: 0.614442, recon: 0.427651, id: 0.394183] time: 0:12:57.532730 \n", "[Epoch 0/3] [Batch 800/1072] [D loss: 0.343767, acc: 42%] [G loss: 7.819142, adv: 1.091154, recon: 0.480351, id: 0.384896] time: 0:14:55.050641 \n", "[Epoch 0/3] [Batch 900/1072] [D loss: 0.189699, acc: 74%] [G loss: 9.907380, adv: 0.933343, recon: 0.667423, id: 0.459962] time: 0:16:51.246158 \n", "[Epoch 0/3] [Batch 1000/1072] [D loss: 0.285627, acc: 55%] [G loss: 5.332727, adv: 0.343362, recon: 0.336217, id: 0.325440] time: 0:18:06.502414 \n", "[Epoch 1/3] [Batch 0/1072] [D loss: 0.227674, acc: 66%] [G loss: 7.080729, adv: 0.412941, recon: 0.465349, id: 0.402860] time: 0:19:06.023534 \n", "[Epoch 1/3] [Batch 100/1072] [D loss: 0.412525, acc: 46%] [G loss: 8.608840, adv: 1.083370, recon: 0.527103, id: 0.450888] time: 0:20:44.161874 \n", "[Epoch 1/3] [Batch 200/1072] [D loss: 0.148316, acc: 81%] [G loss: 7.947303, adv: 0.430690, recon: 0.500641, id: 0.502041] time: 0:22:00.674394 \n", "[Epoch 1/3] [Batch 300/1072] [D loss: 0.077912, acc: 92%] [G loss: 8.458592, adv: 0.922254, recon: 0.526429, id: 0.454409] time: 0:23:40.362486 \n", "[Epoch 1/3] [Batch 400/1072] [D loss: 0.215411, acc: 62%] [G loss: 11.787760, adv: 1.364995, recon: 0.697856, id: 0.688840] time: 0:25:29.203894 \n", "[Epoch 1/3] [Batch 500/1072] [D loss: 0.137865, acc: 85%] [G loss: 10.552708, adv: 0.641869, recon: 0.672166, id: 0.637836] time: 0:27:31.532236 \n", "[Epoch 1/3] [Batch 600/1072] [D loss: 0.229215, acc: 71%] [G loss: 7.292958, adv: 0.541122, recon: 0.449059, id: 0.452249] time: 0:29:35.727123 \n", "[Epoch 1/3] [Batch 700/1072] [D loss: 0.199259, acc: 64%] [G loss: 7.631823, adv: 0.859557, recon: 0.481230, id: 0.391993] time: 0:31:43.834360 \n", "[Epoch 1/3] [Batch 800/1072] [D loss: 0.113966, acc: 85%] [G loss: 7.264657, adv: 0.500461, recon: 0.452204, id: 0.448432] time: 0:33:34.021315 \n", "[Epoch 1/3] [Batch 900/1072] [D loss: 0.091486, acc: 91%] [G loss: 5.678991, adv: 0.480751, recon: 0.364984, id: 0.309679] time: 0:35:11.574396 \n", "[Epoch 1/3] [Batch 1000/1072] [D loss: 0.422604, acc: 54%] [G loss: 6.868853, adv: 1.684472, recon: 0.364244, id: 0.308389] time: 0:37:12.379657 \n", "[Epoch 2/3] [Batch 0/1072] [D loss: 0.199890, acc: 67%] [G loss: 6.669252, adv: 0.223052, recon: 0.453563, id: 0.382114] time: 0:38:36.131741 \n", "[Epoch 2/3] [Batch 100/1072] [D loss: 0.094092, acc: 88%] [G loss: 10.079027, adv: 0.503231, recon: 0.622302, id: 0.670555] time: 0:40:32.117217 \n", "[Epoch 2/3] [Batch 200/1072] [D loss: 0.368219, acc: 50%] [G loss: 6.324982, adv: 0.217230, recon: 0.412115, id: 0.397319] time: 0:42:05.890254 \n", "[Epoch 2/3] [Batch 300/1072] [D loss: 0.142191, acc: 78%] [G loss: 8.537750, adv: 0.319695, recon: 0.561679, id: 0.520254] time: 0:43:53.216167 \n", "[Epoch 2/3] [Batch 400/1072] [D loss: 0.252794, acc: 58%] [G loss: 7.220587, adv: 1.130594, recon: 0.426588, id: 0.364823] time: 0:45:36.017767 \n", "[Epoch 2/3] [Batch 500/1072] [D loss: 0.101986, acc: 91%] [G loss: 5.285597, adv: 0.613604, recon: 0.312385, id: 0.309628] time: 0:47:23.879917 \n", "[Epoch 2/3] [Batch 600/1072] [D loss: 0.079525, acc: 92%] [G loss: 7.943096, adv: 0.789464, recon: 0.518927, id: 0.392873] time: 0:49:16.477149 \n", "[Epoch 2/3] [Batch 700/1072] [D loss: 0.091514, acc: 90%] [G loss: 5.638447, adv: 0.596888, recon: 0.342609, id: 0.323093] time: 0:51:05.521128 \n", "[Epoch 2/3] [Batch 800/1072] [D loss: 0.232466, acc: 61%] [G loss: 5.989744, adv: 0.724515, recon: 0.353501, id: 0.346043] time: 0:53:20.007337 \n", "[Epoch 2/3] [Batch 900/1072] [D loss: 0.197617, acc: 75%] [G loss: 7.511886, adv: 0.234178, recon: 0.492346, id: 0.470849] time: 0:55:38.355106 \n", "[Epoch 2/3] [Batch 1000/1072] [D loss: 0.259637, acc: 60%] [G loss: 4.945220, adv: 0.289054, recon: 0.310568, id: 0.310097] time: 0:57:56.996135 \n" ] } ], "source": [ "gan.train(data_loader\n", " , run_folder = RUN_FOLDER\n", " , epochs=EPOCHS\n", " , test_A_file = TEST_A_FILE\n", " , test_B_file = TEST_B_FILE\n", " , batch_size=BATCH_SIZE\n", " , sample_interval=PRINT_EVERY_N_BATCHES)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 훈련 결과" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1 배치 후\n", "![1배치](run/paint/0001_monet2photo/images/0_0_0.png)\n", "\n", "1 에포크\n", "![1에포크](run/paint/0001_monet2photo/images/0_0_990.png)\n", "\n", "2 에포크\n", "![1에포크](run/paint/0001_monet2photo/images/0_1_990.png)\n", "\n", "3 에포크\n", "![1에포크](run/paint/0001_monet2photo/images/0_2_990.png)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }