Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel

main.py 4.3 KB

You have to be logged in to leave a comment. Sign In
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
  1. import argparse
  2. import os
  3. import scipy.misc
  4. import numpy as np
  5. from model import DualNet
  6. import tensorflow as tf
  7. parser = argparse.ArgumentParser(description='Argument parser')
  8. """ Arguments related to network architecture"""
  9. parser.add_argument('--network_type', dest='network_type', default='fcn_4', help='fcn_1,fcn_2,fcn_4,fcn_8, fcn_16, fcn_32, fcn_64, fcn_128')
  10. parser.add_argument('--image_size', dest='image_size', type=int, default=128, help='size of input images (applicable to both A images and B images)')
  11. parser.add_argument('--fcn_filter_dim', dest='fcn_filter_dim', type=int, default=64, help='# of fcn filters in first conv layer')
  12. parser.add_argument('--input_channels_A', dest='input_channels_A', type=int, default=3, help='# of input image channels')
  13. parser.add_argument('--input_channels_B', dest='input_channels_B', type=int, default=3, help='# of output image channels')
  14. """Arguments related to run mode"""
  15. parser.add_argument('--phase', dest='phase', default='train', help='train, test')
  16. parser.add_argument('--use_labeled_data', dest='use_labeled_data', default='nosemi', help='#semi-supervised learning or unsupervised learning')
  17. """Arguments related to training"""
  18. parser.add_argument('--loss_metric', dest='loss_metric', default='L1', help='L1, or L2')
  19. parser.add_argument('--niter', dest='niter', type=int, default=30, help='# of iter at starting learning rate')
  20. parser.add_argument('--lr', dest='lr', type=float, default=0.00005, help='initial learning rate for adam')#0.0002
  21. parser.add_argument('--beta1', dest='beta1', type=float, default=0.5, help='momentum term of adam')
  22. parser.add_argument('--flip', dest='flip', type=bool, default=True, help='if flip the images for data argumentation')
  23. parser.add_argument('--dataset_name', dest='dataset_name', default='facades', help='name of the dataset')
  24. parser.add_argument('--epoch', dest='epoch', type=int, default=30, help='# of epoch')
  25. parser.add_argument('--batch_size', dest='batch_size', type=int, default=1, help='# images in batch')
  26. parser.add_argument('--lambda_A', dest='lambda_A', type=float, default=200.0, help='# weights of A recovery loss')
  27. parser.add_argument('--lambda_B', dest='lambda_B', type=float, default=200.0, help='# weights of B recovery loss')
  28. parser.add_argument('--lambda_pair', dest='lambda_pair', type=float, default=200.0, help='# weights of pair recovery loss')
  29. parser.add_argument('--n_critic', dest='n_critic', type=int, default=3, help='#n_critic')
  30. parser.add_argument('--clamp', dest='clamp', type=float, default=0.01, help='#n_critic')
  31. """Arguments related to monitoring and outputs"""
  32. parser.add_argument('--save_epoch_freq', dest='save_epoch_freq', type=int, default=50, help='save a model every save_epoch_freq epochs (does not overwrite previously saved models)')
  33. parser.add_argument('--save_latest_freq', dest='save_latest_freq', type=int, default=1000, help='save the latest model every latest_freq sgd iterations (overwrites the previous latest model)')
  34. parser.add_argument('--checkpoint_dir', dest='checkpoint_dir', default='./checkpoint', help='models are saved here')
  35. parser.add_argument('--sample_dir', dest='sample_dir', default='./sample', help='sample are saved here')
  36. parser.add_argument('--test_dir', dest='test_dir', default='./test', help='test sample are saved here')
  37. args = parser.parse_args()
  38. def main(_):
  39. if not os.path.exists(args.checkpoint_dir):
  40. os.makedirs(args.checkpoint_dir)
  41. if not os.path.exists(args.sample_dir):
  42. os.makedirs(args.sample_dir)
  43. if not os.path.exists(args.test_dir):
  44. os.makedirs(args.test_dir)
  45. with tf.Session() as sess:
  46. model = DualNet(sess, image_size=args.image_size, batch_size=args.batch_size,\
  47. dataset_name=args.dataset_name,input_channels_A = args.input_channels_A, \
  48. input_channels_B = args.input_channels_B, flip = (args.flip == 'True'),\
  49. checkpoint_dir=args.checkpoint_dir, sample_dir=args.sample_dir,\
  50. network_type = args.network_type, fcn_filter_dim = args.fcn_filter_dim,\
  51. loss_metric=args.loss_metric, lambda_B=args.lambda_B, \
  52. lambda_pair = args.lambda_pair, lambda_A= args.lambda_A, \
  53. n_critic = args.n_critic, use_labeled_data = args.use_labeled_data, clamp = args.clamp)
  54. if args.phase == 'train':
  55. model.train(args)
  56. else:
  57. model.test(args)
  58. if __name__ == '__main__':
  59. tf.app.run()
Tip!

Press p or to see the previous file or, n or to see the next file

Comments

Loading...