| 7 | |
| 8 | |
| 9 | class TrainOptions(BaseOptions): |
| 10 | def initialize(self, parser): |
| 11 | BaseOptions.initialize(self, parser) |
| 12 | # for displays |
| 13 | parser.add_argument('--display_freq', type=int, default=100, help='frequency of showing training results on screen') |
| 14 | parser.add_argument('--print_freq', type=int, default=100, help='frequency of showing training results on console') |
| 15 | parser.add_argument('--save_latest_freq', type=int, default=5000, help='frequency of saving the latest results') |
| 16 | parser.add_argument('--save_epoch_freq', type=int, default=10, help='frequency of saving checkpoints at the end of epochs') |
| 17 | parser.add_argument('--no_html', action='store_true', help='do not save intermediate training results to [opt.checkpoints_dir]/[opt.name]/web/') |
| 18 | parser.add_argument('--debug', action='store_true', help='only do one epoch and displays at each iteration') |
| 19 | parser.add_argument('--tf_log', action='store_true', help='if specified, use tensorboard logging. Requires tensorflow installed') |
| 20 | |
| 21 | # for training |
| 22 | parser.add_argument('--continue_train', action='store_true', help='continue training: load the latest model') |
| 23 | parser.add_argument('--which_epoch', type=str, default='latest', help='which epoch to load? set to latest to use latest cached model') |
| 24 | parser.add_argument('--niter', type=int, default=50, help='# of iter at starting learning rate. This is NOT the total #epochs. Totla #epochs is niter + niter_decay') |
| 25 | parser.add_argument('--niter_decay', type=int, default=0, help='# of iter to linearly decay learning rate to zero') |
| 26 | parser.add_argument('--optimizer', type=str, default='adam') |
| 27 | parser.add_argument('--beta1', type=float, default=0.0, help='momentum term of adam') |
| 28 | parser.add_argument('--beta2', type=float, default=0.9, help='momentum term of adam') |
| 29 | parser.add_argument('--no_TTUR', action='store_true', help='Use TTUR training scheme') |
| 30 | |
| 31 | # the default values for beta1 and beta2 differ by TTUR option |
| 32 | opt, _ = parser.parse_known_args() |
| 33 | if opt.no_TTUR: |
| 34 | parser.set_defaults(beta1=0.5, beta2=0.999) |
| 35 | |
| 36 | parser.add_argument('--lr', type=float, default=0.0002, help='initial learning rate for adam') |
| 37 | parser.add_argument('--D_steps_per_G', type=int, default=1, help='number of discriminator iterations per generator iterations.') |
| 38 | |
| 39 | # for discriminators |
| 40 | parser.add_argument('--ndf', type=int, default=64, help='# of discrim filters in first conv layer') |
| 41 | parser.add_argument('--lambda_feat', type=float, default=10.0, help='weight for feature matching loss') |
| 42 | parser.add_argument('--lambda_vgg', type=float, default=10.0, help='weight for vgg loss') |
| 43 | parser.add_argument('--no_ganFeat_loss', action='store_true', help='if specified, do *not* use discriminator feature matching loss') |
| 44 | parser.add_argument('--no_vgg_loss', action='store_true', help='if specified, do *not* use VGG feature matching loss') |
| 45 | parser.add_argument('--gan_mode', type=str, default='hinge', help='(ls|original|hinge)') |
| 46 | parser.add_argument('--netD', type=str, default='multiscale', help='(n_layers|multiscale|image)') |
| 47 | parser.add_argument('--lambda_kld', type=float, default=0.05) |
| 48 | self.isTrain = True |
| 49 | return parser |