def run(self, debug=False): batch_size = self.initial_batch_size for _ in range(self.number_of_interation): self.run_iteration(batch_size=batch_size, epochs=self.epochs, debug=debug) batch_size *= 2 if self.all_image_buffers: make_animation(self.all_image_buffers, '/opt/host/Downloads/quadGAN')
def show_sample(path, interval=200): original, img = get_image(path) patch_list = [] for line in get_lines(img): patch_list.append((line, 'blue', '')) for char in get_chars(img, line): patch_list.append((char, 'green', '')) make_animation(original, patch_list, interval)
def train(self, debug): image_buffers = [] image_buffers_test = [] for ep in tqdm.trange(self.epochs, desc='Epoch Loop'): if ep < self.ep_cnt: continue # update epoch counter self.ep_cnt.assign_add(1) # train for an epoch for A, B in tqdm.tqdm(self.A_B_dataset, desc='Inner Epoch Loop', total=self.len_dataset): G_loss_dict, D_loss_dict = self.train_step(A, B) # # summary tl.summary(G_loss_dict, step=self.G_optimizer.iterations, name='G_losses') tl.summary(D_loss_dict, step=self.G_optimizer.iterations, name='D_losses') tl.summary( { 'learning rate': self.G_lr_scheduler.current_learning_rate }, step=self.G_optimizer.iterations, name='learning rate') # sample snapshot_period = min(10, (self.epochs // 70) + 1) if self.G_optimizer.iterations.numpy() % snapshot_period == 0: image_buffers.append( self.snapshot(A, B, 'train_iter-%09d.jpg', debug=debug)) A_test, B_test = next(self.test_iter) image_buffers_test.append( self.snapshot(A_test, B_test, 'test_iter-%09d.jpg', debug=debug)) # save checkpoint self.checkpoint.save(ep) if image_buffers: image_buffers.extend(image_buffers_test) make_animation(image_buffers, 'animations/cycleGAN')
def process_image(): numbers = list(map(int, open('numbers.txt').read().split(' '))) o, _ = get_image('numbers.png') slices = [(s, 'green', n) for ((_, s), n) in zip(get_digits_fake(o), numbers)] ani = make_animation(o, slices, 300) # plt.show() return ani
from digits_classifiers import get_predictor from image_processing import get_digits, get_image from utils import make_animation import matplotlib.pylab as plt predictor = get_predictor('Logistic regression') original, img = get_image('numbers.png') predictions = [] for digit, slice_ in get_digits(img): p = predictor.predict(digit)[0] predictions.append((slice_, 'green', p)) ani = make_animation(original, predictions, interval=300) plt.show()