提交 2cb2a522 编写于 作者: u010070587's avatar u010070587 提交者: lvmengsi

add dcgan ce (#732)

add dcgan ce for book/09 
上级 78aa9ad9
#!/bin/bash
#This file is only used for continuous evaluation.
export FLAGS_cudnn_deterministic=True
export CUDA_VISIBLE_DEVICES=0
python dc_gan.py --enable_ce true --epoch 1 --use_gpu True | python _ce.py
### This file is only used for continuous evaluation test!
from __future__ import print_function
from __future__ import division
from __future__ import absolute_import
import os
import sys
sys.path.append(os.environ['ceroot'])
from kpi import CostKpi
dcgan_d_train_cost_kpi = CostKpi(
'dcgan_d_train_cost',
0.02,
0,
actived=True,
desc='train cost of discriminator')
dcgan_g_train_cost_kpi = CostKpi(
'dcgan_g_train_cost', 0.02, 0, actived=True, desc='train cost of generator')
tracking_kpis = [dcgan_d_train_cost_kpi, dcgan_g_train_cost_kpi]
def parse_log(log):
for line in log.split('\n'):
fs = line.strip().split('\t')
print(fs)
if len(fs) == 3 and fs[0] == 'kpis':
kpi_name = fs[1]
kpi_value = float(fs[2])
yield kpi_name, kpi_value
def log_to_ce(log):
kpi_tracker = {}
for kpi in tracking_kpis:
kpi_tracker[kpi.name] = kpi
print(kpi.name)
print(kpi)
for (kpi_name, kpi_value) in parse_log(log):
print(kpi_name, kpi_value)
kpi_tracker[kpi_name].add_record(kpi_value)
kpi_tracker[kpi_name].persist()
if __name__ == '__main__':
log = sys.stdin.read()
log_to_ce(log)
......@@ -41,6 +41,7 @@ add_arg('batch_size', int, 128, "Minibatch size.")
add_arg('epoch', int, 20, "The number of epoched to be trained.")
add_arg('output', str, "./output_dcgan", "The directory the model and the test result to be saved to.")
add_arg('use_gpu', bool, True, "Whether to use GPU to train.")
add_arg('enable_ce', bool, False, "If set True, enable continuous evaluation job.")
# yapf: enable
......@@ -51,6 +52,10 @@ def loss(x, label):
def train(args):
if args.enable_ce:
np.random.seed(10)
fluid.default_startup_program().random_seed = 90
d_program = fluid.Program()
dg_program = fluid.Program()
......@@ -87,10 +92,14 @@ def train(args):
if args.use_gpu:
exe = fluid.Executor(fluid.CUDAPlace(0))
exe.run(fluid.default_startup_program())
if args.enable_ce:
train_reader = paddle.batch(
paddle.dataset.mnist.train(), batch_size=args.batch_size)
else:
train_reader = paddle.batch(
paddle.reader.shuffle(paddle.dataset.mnist.train(), buf_size=60000),
batch_size=args.batch_size)
train_reader = paddle.batch(
paddle.reader.shuffle(paddle.dataset.mnist.train(), buf_size=60000),
batch_size=args.batch_size)
NUM_TRAIN_TIMES_OF_DG = 2
const_n = np.random.uniform(
......@@ -166,6 +175,9 @@ def train(args):
batch_id),
bbox_inches='tight')
plt.close(fig)
if args.enable_ce and pass_id == args.epoch - 1:
print("kpis\tdcgan_d_train_cost\t%f" % np.mean(losses[0]))
print("kpis\tdcgan_g_train_cost\t%f" % np.mean(losses[1]))
if __name__ == "__main__":
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册