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')
示例#2
0
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)
示例#3
0
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)
示例#4
0
    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')
示例#5
0
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
示例#6
0
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
示例#7
0
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()