cr / options /test_options.py
Keiser41's picture
Upload 201 files
96eb931
from .base_options import BaseOptions
class TestOptions(BaseOptions):
"""This class includes test options.
It also includes shared options defined in BaseOptions.
"""
def initialize(self, parser):
parser = BaseOptions.initialize(self, parser) # define shared options
parser.add_argument('--image_path', type=str, help='path to image for generate.')
parser.add_argument('--ntest', type=int, default=float("inf"), help='# of test examples.')
parser.add_argument('--aspect_ratio', type=float, default=1.0, help='aspect ratio of result images')
parser.add_argument('--phase', type=str, default='test', help='train, val, test, etc')
parser.add_argument('--which_epoch', type=str, default='latest', help='which epoch to load? set to latest to use latest cached model')
parser.add_argument('--how_many', type=int, default=50, help='how many test images to run')
parser.add_argument('--results_dir', type=str, default='./results/', help='saves results here.')
# Dropout and Batchnorm has different behavioir during training and test.
parser.add_argument('--eval', action='store_true', help='use eval mode during test time.')
parser.add_argument('--num_test', type=int, default=50, help='how many test images to run')
# rewrite devalue values
# To avoid cropping, the load_size should be the same as crop_size
parser.set_defaults(load_size=parser.get_default('crop_size'))
self.isTrain = False
return parser
def generate():
"""
generate single image specific by image path, and show the after generated image
:return:
"""
image_path = opt.image_path
print('generate from {}'.format(image_path))
data = load_image_for_prediction(opt, image_path)
model = OneDirectionTestModel()
model.initialize(opt=opt)
model.set_input(data)
model.test()
visuals = model.get_current_visuals()
generated_a = visuals['fake_B']
image_generated = Image.fromarray(generated_a)
image_generated.save(str(os.path.basename(image_path).split('.')[0]) + '_fake_b.jpg')
combined_result = np.concatenate([img for _, img in visuals.items()], 1)
image_combined = Image.fromarray(combined_result)
image_combined.save(str(os.path.basename(image_path).split('.')[0]) + '_combined.jpg')
image_combined.show()
print('generated image saved.')
if __name__ == '__main__':
generate()
def parse(self):
if not self.initialized:
self.initialize()
self.opt = self.parser.parse_args()
self.opt.isTrain = self.isTrain # train or test
str_ids = self.opt.gpu_ids.split(',')
self.opt.gpu_ids = []
for str_id in str_ids:
id = int(str_id)
if id >= 0:
self.opt.gpu_ids.append(id)
args = vars(self.opt)
print('------------ Options -------------')
for k, v in sorted(args.items()):
print('%s: %s' % (str(k), str(v)))
print('-------------- End ----------------')
# save to the disk
expr_dir = os.path.join(self.opt.checkpoints_dir, self.opt.name)
util.mkdirs(expr_dir)
file_name = os.path.join(expr_dir, 'opt.txt')
with open(file_name, 'wt') as opt_file:
opt_file.write('------------ Options -------------\n')
for k, v in sorted(args.items()):
opt_file.write('%s: %s\n' % (str(k), str(v)))
opt_file.write('-------------- End ----------------\n')
return self.opt