# -*- coding: utf-8 -*- import argparse import os import six.moves.cPickle as pickle from alexnet import forward from util import empty_label, load_image, walk_dir def predict_image(model, file_path): _, pred = forward(model, load_image(file_path), empty_label(), train=False) print '多分これかな?: %s' % (pred.data) if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('-m', '--model', type=str, help='pickle file', default='AlexNet_epoch_100.pickle') parser.add_argument('-d', '--data_dir', type=str, default='data') args = parser.parse_args() model = pickle.load(open(args.model, 'rb')) walk_dir(args.data_dir, lambda _, f: predict_image(model, f))
from alexnet import forward, model from util import load_image, num_to_label, walk_dir if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('-d', '--data_dir', type=str, default='data') parser.add_argument('-e', '--epoch', type=int, default=100) args = parser.parse_args() # init optimizer optimizer = optimizers.Adam() optimizer.setup(model) # load data data = [] walk_dir(args.data_dir, lambda i, f: data.extend([(num_to_label(i), load_image(f))])) # learn for i in range(args.epoch): random.shuffle(data) t = 0 pbar = ProgressBar(len(data)) for (label, img) in data: optimizer.zero_grads() loss, acc = forward(model, img, label, train=True) loss.backward() optimizer.update() t += 1