modelFile_handle = open(modelFile, 'w') with torch.no_grad(): # classifier = FontClasifier_1_4(nClasses, classifyFonts) # if opt.cuda: # classifier.cuda() # classifier.load_state_dict(torch.load(fontClassifierModelPath)) # classifier.eval() # For the feature matching loss classifier = FontClasifier_1_4(nClasses, classifyFonts) classifier.load_state_dict(torch.load(fontClassifierModelPath)) feature_extractor = KfirFeatureExtractor(classifier, opt) print(feature_extractor) cont_enc = _EncoderNoa(opt.imageSize, opt.contentEnc_nz) stl_enc = _EncoderNoa(opt.imageSize, opt.styleEnc_nz) if useConcat: dec = _DecoderNoa(opt.imageSize, opt.contentEnc_nz + opt.styleEnc_nz) else: dec = _DecoderNoa(opt.imageSize, opt.contentEnc_nz) writeModel(modelFile_handle, feature_extractor, "feature_extractor") writeModel(modelFile_handle, classifier, "classifier") writeModel(modelFile_handle, cont_enc, "cont_enc") writeModel(modelFile_handle, stl_enc, "stl_enc") writeModel(modelFile_handle, dec, "dec") modelFile_handle.close() #decr = _DecoderNoa(opt.imageSize) mse_criterion = nn.MSELoss()
modelFile_handle = open(modelFile, 'w') with torch.no_grad(): # classifier = FontClasifier_1_4(nClasses, classifyFonts) # if opt.cuda: # classifier.cuda() # classifier.load_state_dict(torch.load(fontClassifierModelPath)) # classifier.eval() # For the feature matching loss classifier = FontClasifier_1_4(nClasses, classifyFonts) classifier.load_state_dict(torch.load(fontClassifierModelPath)) feature_extractor = KfirFeatureExtractor(classifier, opt) print(feature_extractor) cont_enc = _EncoderNoa(opt.imageSize) stl_enc = _EncoderNoa(opt.imageSize) dec = _DecoderNoa(opt.imageSize, useConcat) writeModel(modelFile_handle, feature_extractor, "feature_extractor") writeModel(modelFile_handle, classifier, "classifier") writeModel(modelFile_handle, cont_enc, "cont_enc") writeModel(modelFile_handle, stl_enc, "stl_enc") writeModel(modelFile_handle, dec, "dec") modelFile_handle.close() #decr = _DecoderNoa(opt.imageSize) mse_criterion = nn.MSELoss() L1criterion = nn.L1Loss() class_criterion = nn.CrossEntropyLoss() #criterion = nn.BCELoss()
def runMethodTest(destPath, opt, contEncPath, styleEncPath, decPath, useConcat): if not os.path.exists(destPath): os.makedirs(destPath) data_loader = CreateDataLoader(opt) dataloader = data_loader.load_data() dataset_size = len(data_loader) print('#testing images = %d' % dataset_size) cont_enc = _EncoderNoa(opt.imageSize) stl_enc = _EncoderNoa(opt.imageSize) dec = _DecoderNoa(opt.imageSize, useConcat) cont_enc.load_state_dict(torch.load(contEncPath)) stl_enc.load_state_dict(torch.load(styleEncPath)) dec.load_state_dict(torch.load(decPath)) if opt.cuda: # feature_extractor.cuda() cont_enc.cuda() stl_enc.cuda() dec.cuda() torch.manual_seed(0) for i, data in enumerate(dataloader, 0): img1 = data['A'] img2 = data['B'] img12 = data['A2'] img21 = data['B2'] if opt.cuda: img1 = img1.cuda() img2 = img2.cuda() img12 = img12.cuda() img21 = img21.cuda() stl1 = stl_enc(img1) stl2 = stl_enc(img2) cont1 = cont_enc(img1) cont2 = cont_enc(img2) # stl12 = stl_enc(img12) # stl21 = stl_enc(img21) # cont12 = cont_enc(img12) # cont21 = cont_enc(img21) if (useConcat): stl1cont2 = torch.cat((stl1, cont2), 1) stl2cont1 = torch.cat((stl2, cont1), 1) # stl1cont1 = torch.cat((stl1, cont1), 1) # stl2cont2 = torch.cat((stl2, cont2), 1) else: stl1cont2 = stl1 + cont2 stl2cont1 = stl2 + cont1 # stl1cont1 = stl1 + cont1 # stl2cont2 = stl2 + cont2 dec12 = dec(stl1cont2) dec21 = dec(stl2cont1) # dec11 = dec(stl1cont1) # dec22 = dec(stl2cont2) if i % 10 == 0: im1 = util.tensor2im(img1[0]) im2 = util.tensor2im(img2[0]) oim12 = util.tensor2im(img12[0]) oim21 = util.tensor2im(img21[0]) im12 = util.tensor2im(dec12[0]) im21 = util.tensor2im(dec21[0]) imageio.imwrite( os.path.join(destPath, '%d_style_1_cont_2.png' % (i)), im12) imageio.imwrite( os.path.join(destPath, '%d_style_2_cont_1.png' % (i)), im21) imageio.imwrite( os.path.join(destPath, '%d_style_1_cont_1_orig.png' % (i)), im1) imageio.imwrite( os.path.join(destPath, '%d_style_2_cont_2_orig.png' % (i)), im2) imageio.imwrite( os.path.join(destPath, '%d_style_1_cont_2_orig.png' % (i)), oim12) imageio.imwrite( os.path.join(destPath, '%d_style_2_cont_1_orig.png' % (i)), oim21)