Python chainer.serializers.save_npz() Examples
The following are 29
code examples of chainer.serializers.save_npz().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
chainer.serializers
, or try the search function
.
Example #1
Source File: agent.py From chainerrl with MIT License | 6 votes |
def __save(self, dirname, ancestors): os.makedirs(dirname, exist_ok=True) ancestors.append(self) for attr in self.saved_attributes: assert hasattr(self, attr) attr_value = getattr(self, attr) if attr_value is None: continue if isinstance(attr_value, AttributeSavingMixin): assert not any( attr_value is ancestor for ancestor in ancestors ), "Avoid an infinite loop" attr_value.__save(os.path.join(dirname, attr), ancestors) else: serializers.save_npz( os.path.join(dirname, '{}.npz'.format(attr)), getattr(self, attr)) ancestors.pop()
Example #2
Source File: test_manual_schedule_trigger.py From chainer with MIT License | 6 votes |
def test_resumed_trigger(self): trainer = testing.get_trainer_with_mock_updater( stop_trigger=None, iter_per_epoch=self.iter_per_epoch) with tempfile.NamedTemporaryFile(delete=False) as f: trigger = training.triggers.ManualScheduleTrigger(*self.schedule) for expected, finished in zip(self.expected[:self.resume], self.finished[:self.resume]): trainer.updater.update() self.assertEqual(trigger(trainer), expected) self.assertEqual(trigger.finished, finished) serializers.save_npz(f.name, trigger) trigger = training.triggers.ManualScheduleTrigger(*self.schedule) serializers.load_npz(f.name, trigger) for expected, finished in zip(self.expected[self.resume:], self.finished[self.resume:]): trainer.updater.update() self.assertEqual(trigger(trainer), expected) self.assertEqual(trigger.finished, finished)
Example #3
Source File: test_interval_trigger.py From chainer with MIT License | 6 votes |
def test_resumed_trigger_sparse_call(self): trainer = testing.get_trainer_with_mock_updater( stop_trigger=None, iter_per_epoch=self.iter_per_epoch) accumulated = False with tempfile.NamedTemporaryFile(delete=False) as f: trigger = training.triggers.IntervalTrigger(*self.interval) for expected in self.expected[:self.resume]: trainer.updater.update() accumulated = accumulated or expected if random.randrange(2): self.assertEqual(trigger(trainer), accumulated) accumulated = False serializers.save_npz(f.name, trigger) trigger = training.triggers.IntervalTrigger(*self.interval) serializers.load_npz(f.name, trigger) for expected in self.expected[self.resume:]: trainer.updater.update() accumulated = accumulated or expected if random.randrange(2): self.assertEqual(trigger(trainer), accumulated) accumulated = False
Example #4
Source File: caffe2npz.py From chainercv with MIT License | 6 votes |
def main(): parser = argparse.ArgumentParser() parser.add_argument('caffemodel') parser.add_argument('output') args = parser.parse_args() proto_path = 'weights/pspnet101_cityscapes_713.prototxt' n_class = 19 input_size = (713, 713) model = PSPNetResNet101( n_class, None, input_size) model(np.random.uniform(size=(1, 3) + input_size).astype(np.float32)) caffe_param = caffe_pb2.NetParameter() caffe_param.MergeFromString(open(args.caffemodel, 'rb').read()) caffe_net = text_format.Merge( open(proto_path).read(), caffe_pb2.NetParameter()) transfer(model, caffe_param, caffe_net) serializers.save_npz(args.output, model)
Example #5
Source File: NNet.py From alpha-zero-general with MIT License | 5 votes |
def save_checkpoint(self, folder='checkpoint', filename='checkpoint.pth.tar'): filepath = os.path.join(folder, filename) if not os.path.exists(folder): print("Checkpoint Directory does not exist! Making directory {}".format(folder)) os.mkdir(folder) else: # print("Checkpoint Directory exists! ") pass print('Saving model at {}'.format(filepath)) serializers.save_npz(filepath, self.nnet)
Example #6
Source File: chainer_alex.py From mlimages with MIT License | 5 votes |
def train(epoch=10, batch_size=32, gpu=False): if gpu: cuda.check_cuda_available() xp = cuda.cupy if gpu else np td = TrainingData(LABEL_FILE, img_root=IMAGES_ROOT, image_property=IMAGE_PROP) # make mean image if not os.path.isfile(MEAN_IMAGE_FILE): print("make mean image...") td.make_mean_image(MEAN_IMAGE_FILE) else: td.mean_image_file = MEAN_IMAGE_FILE # train model label_def = LabelingMachine.read_label_def(LABEL_DEF_FILE) model = alex.Alex(len(label_def)) optimizer = optimizers.MomentumSGD(lr=0.01, momentum=0.9) optimizer.setup(model) epoch = epoch batch_size = batch_size print("Now our model is {0} classification task.".format(len(label_def))) print("begin training the model. epoch:{0} batch size:{1}.".format(epoch, batch_size)) if gpu: model.to_gpu() for i in range(epoch): print("epoch {0}/{1}: (learning rate={2})".format(i + 1, epoch, optimizer.lr)) td.shuffle(overwrite=True) for x_batch, y_batch in td.generate_batches(batch_size): x = chainer.Variable(xp.asarray(x_batch)) t = chainer.Variable(xp.asarray(y_batch)) optimizer.update(model, x, t) print("loss: {0}, accuracy: {1}".format(float(model.loss.data), float(model.accuracy.data))) serializers.save_npz(MODEL_FILE, model) optimizer.lr *= 0.97
Example #7
Source File: custom_extensions.py From Video-frame-prediction-by-multi-scale-GAN with MIT License | 5 votes |
def saveGen(trainer): """ :param trainer: :return: """ serializers.save_npz('result/TRAINED_ADVERSARIAL.model', trainer.updater.GenNetwork) print("Model Saved @ iteration number : ",trainer.updater.iteration)
Example #8
Source File: resource.py From machine_learning_in_application with MIT License | 5 votes |
def save_model(self, model): if not os.path.exists(self.model_path): os.mkdir(self.model_path) timestamp = datetime.strftime(datetime.now(), "%Y%m%d%H%M%S") model_file = os.path.join(self.model_path, "./" + model.__class__.__name__.lower() + "_" + timestamp + ".model") serializers.save_npz(model_file, model)
Example #9
Source File: train_model.py From der-network with MIT License | 5 votes |
def save(model, optimizer, vocab, save_name, args): serializers.save_npz(save_name+"model", copy.deepcopy(model).to_cpu()) serializers.save_npz(save_name+"optimizer", optimizer) json.dump(vocab, open(save_name+"vocab.json", "w")) print('save', save_name)
Example #10
Source File: dqn_agent_cpu.py From DQN-chainer with MIT License | 5 votes |
def save(self): serializers.save_npz('network/model.model', self.dqn.model) serializers.save_npz('network/model_target.model', self.dqn.model_target) print("------------ Networks were SAVED ---------------")
Example #11
Source File: dqn_agent.py From DQN-chainer with MIT License | 5 votes |
def save(self): serializers.save_npz('network/model.model', self.dqn.model) serializers.save_npz('network/model_target.model', self.dqn.model_target) print("------------ Networks were SAVED ---------------")
Example #12
Source File: darknet2npz.py From chainercv with MIT License | 5 votes |
def main(): parser = argparse.ArgumentParser() parser.add_argument( '--model', choices=('yolo_v2', 'yolo_v2_tiny', 'yolo_v3'), default='yolo_v2') parser.add_argument('--n-fg-class', type=int, default=80) parser.add_argument('darknetmodel') parser.add_argument('output') args = parser.parse_args() if args.model == 'yolo_v2': model = YOLOv2(n_fg_class=args.n_fg_class) elif args.model == 'yolo_v2_tiny': model = YOLOv2Tiny(n_fg_class=args.n_fg_class) elif args.model == 'yolo_v3': model = YOLOv3(n_fg_class=args.n_fg_class) with chainer.using_config('train', False): model(np.empty((1, 3, model.insize, model.insize), dtype=np.float32)) with open(args.darknetmodel, mode='rb') as f: major = np.fromfile(f, dtype=np.int32, count=1) minor = np.fromfile(f, dtype=np.int32, count=1) np.fromfile(f, dtype=np.int32, count=1) # revision if major * 10 + minor >= 2 and major < 1000 and minor < 1000: np.fromfile(f, dtype=np.int64, count=1) # seen else: np.fromfile(f, dtype=np.int32, count=1) # seen if args.model == 'yolo_v2': load_yolo_v2(f, model) elif args.model == 'yolo_v2_tiny': load_yolo_v2(f, model) elif args.model == 'yolo_v3': load_yolo_v3(f, model) serializers.save_npz(args.output, model)
Example #13
Source File: caffe2npz.py From chainercv with MIT License | 5 votes |
def main(): parser = argparse.ArgumentParser() parser.add_argument('caffemodel') parser.add_argument('output') args = parser.parse_args() model = SSDCaffeFunction(args.caffemodel) serializers.save_npz(args.output, model)
Example #14
Source File: train_mdl.py From MultimodalDL with MIT License | 5 votes |
def train_loop(): # Trainer graph_generated = False while True: while data_q.empty(): time.sleep(0.1) inp = data_q.get() if inp == 'end': # quit res_q.put('end') break elif inp == 'train': # restart training res_q.put('train') model.train = True continue elif inp == 'val': # start validation res_q.put('val') serializers.save_npz(args.out, model) serializers.save_npz(args.outstate, optimizer) model.train = False continue volatile = 'off' if model.train else 'on' x = chainer.Variable(xp.asarray(inp[0]), volatile=volatile) t = chainer.Variable(xp.asarray(inp[1]), volatile=volatile) if model.train: optimizer.update(model, x, t) if not graph_generated: with open('graph.dot', 'w') as o: o.write(computational_graph.build_computational_graph( (model.loss,)).dump()) print('generated graph', file=sys.stderr) graph_generated = True else: model(x, t) res_q.put((float(model.loss.data), float(model.accuracy.data))) del x, t # Invoke threads
Example #15
Source File: train_rgb.py From MultimodalDL with MIT License | 5 votes |
def train_loop(): # Trainer graph_generated = False while True: while data_q.empty(): time.sleep(0.1) inp = data_q.get() if inp == 'end': # quit res_q.put('end') break elif inp == 'train': # restart training res_q.put('train') model.train = True continue elif inp == 'val': # start validation res_q.put('val') serializers.save_npz(args.out, model) serializers.save_npz(args.outstate, optimizer) model.train = False continue volatile = 'off' if model.train else 'on' x = chainer.Variable(xp.asarray(inp[0]), volatile=volatile) t = chainer.Variable(xp.asarray(inp[1]), volatile=volatile) if model.train: optimizer.update(model, x, t) if not graph_generated: with open('graph.dot', 'w') as o: o.write(computational_graph.build_computational_graph( (model.loss,)).dump()) print('generated graph', file=sys.stderr) graph_generated = True else: model(x, t) res_q.put((float(model.loss.data), float(model.accuracy.data))) del x, t # Invoke threads
Example #16
Source File: train.py From GUINNESS with GNU General Public License v2.0 | 5 votes |
def on_epoch_done(epoch, n, o, loss, acc, valid_loss, valid_acc, test_loss, test_acc): error = 100 * (1 - acc) valid_error = 100 * (1 - valid_acc) test_error = 100 * (1 - test_acc) print('epoch {} done'.format(epoch)) print('train loss: {} error: {}'.format(loss, error)) print('valid loss: {} error: {}'.format(valid_loss, valid_error)) print('test loss: {} error: {}'.format(test_loss, test_error)) if valid_error < state['best_valid_error']: serializers.save_npz('{}.model'.format(model_prefix), n) serializers.save_npz('{}.state'.format(model_prefix), o) state['best_valid_error'] = valid_error state['best_test_error'] = test_error if args.save_iter > 0 and (epoch + 1) % args.save_iter == 0: serializers.save_npz('{}_{}.model'.format(model_prefix, epoch + 1), n) serializers.save_npz('{}_{}.state'.format(model_prefix, epoch + 1), o) # prevent divergence when using identity mapping model if args.model == 'identity_mapping' and epoch < 9: o.lr = 0.01 + 0.01 * (epoch + 1) # if len(lr_decay_iter) == 1 and (epoch + 1) % lr_decay_iter[0] == 0 or epoch + 1 in lr_decay_iter: # Note, "lr_decay_iter" should be a list object to store a training schedule, # However, to keep up with the Python3.5, I changed to an integer value... if (epoch + 1) % args.lr_decay_iter == 0 and epoch > 1: if hasattr(optimizer, 'alpha'): o.alpha *= 0.1 else: o.lr *= 0.1 clock = time.clock() print('elapsed time: {}'.format(clock - state['clock'])) state['clock'] = clock with open(log_file_path, 'a') as f: f.write('{},{},{},{},{},{},{}\n'.format(epoch + 1, loss, error, valid_loss, valid_error, test_loss, test_error))
Example #17
Source File: snapshot_writers.py From pfio with MIT License | 5 votes |
def __init__(self, directory: str, savefun=None, fs=None): assert directory is not None self.directory = directory self.savefun = save_npz if savefun is None else savefun if fs is None: self.fs = pfio elif isinstance(fs, str): self.fs = pfio.create_handler(fs) else: self.fs = fs if not self.fs.exists(self.directory): self.fs.makedirs(self.directory)
Example #18
Source File: caffe_to_chainermodel.py From fcn with MIT License | 5 votes |
def caffe_to_chainermodel(model, caffe_prototxt, caffemodel_path, chainermodel_path): os.chdir(osp.dirname(caffe_prototxt)) net = caffe.Net(caffe_prototxt, caffemodel_path, caffe.TEST) for name, param in net.params.iteritems(): try: layer = getattr(model, name) except AttributeError: print('Skipping caffe layer: %s' % name) continue has_bias = True if len(param) == 1: has_bias = False print('{0}:'.format(name)) # weight print(' - W: %s %s' % (param[0].data.shape, layer.W.data.shape)) assert param[0].data.shape == layer.W.data.shape layer.W.data = param[0].data # bias if has_bias: print(' - b: %s %s' % (param[1].data.shape, layer.b.data.shape)) assert param[1].data.shape == layer.b.data.shape layer.b.data = param[1].data S.save_npz(chainermodel_path, model)
Example #19
Source File: serializer.py From chainer with MIT License | 5 votes |
def save_and_load_npz(src, dst): """Saves ``src`` to an NPZ file and loads it to ``dst``. This is a short cut of :func:`save_and_load` using NPZ de/serializers. Args: src: An object to save. dst: An object to load to. """ save_and_load(src, dst, 'tmp.npz', serializers.save_npz, serializers.load_npz)
Example #20
Source File: test_spectral_normalization.py From chainer with MIT License | 5 votes |
def check_serialization(self, backend_config): with utils.tempdir() as root: filename = os.path.join(root, 'tmp.npz') layer1 = self.layer.copy('copy') hook1 = copy.deepcopy(self.hook) layer1.add_hook(hook1) layer1.to_device(backend_config.device) x = backend_config.get_array(self.x) with backend_config: layer1(x) with chainer.using_config('train', False): y1 = layer1(x) serializers.save_npz(filename, layer1) layer2 = self.layer.copy('copy') hook2 = copy.deepcopy(self.hook) layer2.add_hook(hook2) # Test loading is nice. msg = None try: serializers.load_npz(filename, layer2) except Exception as e: msg = e assert msg is None with chainer.using_config('train', False): y2 = layer2(self.x.copy()) # Test attributes are the same. orig_weight = _cpu._to_cpu( getattr(layer1, hook1.weight_name).array) orig_vector = _cpu._to_cpu(getattr(layer1, hook1.vector_name)) numpy.testing.assert_array_equal( orig_weight, getattr(layer2, hook2.weight_name).array) numpy.testing.assert_array_equal( orig_vector, getattr(layer2, hook2.vector_name)) testing.assert_allclose(y1.array, y2.array)
Example #21
Source File: test_once_trigger.py From chainer with MIT License | 5 votes |
def test_resumed_trigger_sparse_call(self): trainer = testing.get_trainer_with_mock_updater( stop_trigger=None, iter_per_epoch=self.iter_per_epoch) accumulated = False accumulated_finished = True with tempfile.NamedTemporaryFile(delete=False) as f: trigger = training.triggers.OnceTrigger(self.call_on_resume) for expected, finished in zip(self.resumed_expected[:self.resume], self.resumed_finished[:self.resume]): trainer.updater.update() accumulated = accumulated or expected accumulated_finished = accumulated_finished and finished if random.randrange(2): self.assertEqual(trigger.finished, accumulated_finished) self.assertEqual(trigger(trainer), accumulated) accumulated = False accumulated_finished = True serializers.save_npz(f.name, trigger) trigger = training.triggers.OnceTrigger(self.call_on_resume) serializers.load_npz(f.name, trigger) for expected, finished in zip(self.resumed_expected[self.resume:], self.resumed_finished[self.resume:]): trainer.updater.update() accumulated = accumulated or expected accumulated_finished = accumulated_finished and finished if random.randrange(2): self.assertEqual(trigger.finished, accumulated_finished) self.assertEqual(trigger(trainer), accumulated) accumulated = False accumulated_finished = True
Example #22
Source File: test_minmax_trigger.py From chainer with MIT License | 5 votes |
def _test_trigger(self, trigger, key, accuracies, expected, resume=None, save=None): trainer = testing.get_trainer_with_mock_updater( stop_trigger=(len(accuracies), 'iteration'), iter_per_epoch=self.iter_per_epoch) updater = trainer.updater def _serialize_updater(serializer): updater.iteration = serializer('iteration', updater.iteration) updater.epoch = serializer('epoch', updater.epoch) updater.is_new_epoch = serializer( 'is_new_epoch', updater.is_new_epoch) trainer.updater.serialize = _serialize_updater def set_observation(t): t.observation = {key: accuracies[t.updater.iteration-1]} trainer.extend(set_observation, name='set_observation', trigger=(1, 'iteration'), priority=2) invoked_iterations = [] def record(t): invoked_iterations.append(t.updater.iteration) trainer.extend(record, name='record', trigger=trigger, priority=1) if resume is not None: serializers.load_npz(resume, trainer) trainer.run() self.assertEqual(invoked_iterations, expected) if save is not None: serializers.save_npz(save, trainer)
Example #23
Source File: test_interval_trigger.py From chainer with MIT License | 5 votes |
def test_resumed_trigger(self): trainer = testing.get_trainer_with_mock_updater( stop_trigger=None, iter_per_epoch=self.iter_per_epoch) with tempfile.NamedTemporaryFile(delete=False) as f: trigger = training.triggers.IntervalTrigger(*self.interval) for expected in self.expected[:self.resume]: trainer.updater.update() self.assertEqual(trigger(trainer), expected) serializers.save_npz(f.name, trigger) trigger = training.triggers.IntervalTrigger(*self.interval) serializers.load_npz(f.name, trigger) for expected in self.expected[self.resume:]: trainer.updater.update() self.assertEqual(trigger(trainer), expected)
Example #24
Source File: test_manual_schedule_trigger.py From chainer with MIT License | 5 votes |
def test_resumed_trigger_sparse_call(self): trainer = testing.get_trainer_with_mock_updater( stop_trigger=None, iter_per_epoch=self.iter_per_epoch) accumulated = False with tempfile.NamedTemporaryFile(delete=False) as f: trigger = training.triggers.ManualScheduleTrigger(*self.schedule) for expected, finished in zip(self.expected[:self.resume], self.finished[:self.resume]): trainer.updater.update() accumulated = accumulated or expected if random.randrange(2): self.assertEqual(trigger(trainer), accumulated) self.assertEqual(trigger.finished, finished) accumulated = False serializers.save_npz(f.name, trigger) trigger = training.triggers.ManualScheduleTrigger(*self.schedule) serializers.load_npz(f.name, trigger) for expected, finished in zip(self.expected[self.resume:], self.finished[self.resume:]): trainer.updater.update() accumulated = accumulated or expected if random.randrange(2): self.assertEqual(trigger(trainer), accumulated) self.assertEqual(trigger.finished, finished) accumulated = False
Example #25
Source File: training_chainer.py From knmt with GNU General Public License v3.0 | 5 votes |
def __call__(self, trainer): log.info("Saving current trainer state to file %s" % self.save_to) serializers.save_npz(self.save_to, trainer) config_session = self.config_training.copy(readonly=False) config_session.add_section("model_parameters", keep_at_bottom="metadata") config_session["model_parameters"]["filename"] = self.save_to config_session["model_parameters"]["type"] = "snapshot" config_session["model_parameters"]["description"] = "checkpoint" config_session["model_parameters"]["infos"] = argument_parsing_tools.OrderedNamespace() config_session["model_parameters"]["infos"]["iteration"] = trainer.updater.iteration config_session.set_metadata_modified_time() config_session.save_to(self.save_to + ".config") # json.dump(config_session, open(self.save_to + ".config", "w"), indent=2, # separators=(',', ': ')) log.info("Saved trainer snapshot to file %s" % self.save_to)
Example #26
Source File: training_chainer.py From knmt with GNU General Public License v3.0 | 5 votes |
def __call__(self, trainer): encdec = trainer.updater.get_optimizer("main").target # translations_fn = output_files_dict["dev_translation_output"] #save_prefix + ".test.out" # control_src_fn = output_files_dict["dev_src_output"] #save_prefix + ".test.src.out" bleu_stats = translate_to_file(encdec, self.eos_idx, self.src_data, self.mb_size, self.tgt_indexer, self.translations_fn, test_references=self.references, control_src_fn=self.control_src_fn, src_indexer=self.src_indexer, gpu=self.gpu, nb_steps=50, reverse_src=self.reverse_src, reverse_tgt=self.reverse_tgt, s_unk_tag=self.s_unk_tag, t_unk_tag=self.t_unk_tag, use_chainerx=self.use_chainerx) bleu = bleu_stats.bleu() chainer.reporter.report({self.observation_name: bleu, self.observation_name + "_details": repr(bleu)}) if self.best_bleu is None or self.best_bleu < bleu: log.info("%s improvement: %r -> %r" % (self.observation_name, self.best_bleu, bleu)) self.best_bleu = bleu if self.save_best_model_to is not None: log.info("saving best bleu (%s) model to %s" % (self.observation_name, self.save_best_model_to,)) serializers.save_npz(self.save_best_model_to, encdec) if self.config_training is not None: config_session = self.config_training.copy(readonly=False) config_session.add_section("model_parameters", keep_at_bottom="metadata") config_session["model_parameters"]["filename"] = self.save_best_model_to config_session["model_parameters"]["type"] = "model" config_session["model_parameters"]["description"] = "best_bleu" config_session["model_parameters"]["infos"] = argument_parsing_tools.OrderedNamespace() config_session["model_parameters"]["infos"]["bleu_stats"] = str(bleu_stats) config_session["model_parameters"]["infos"]["iteration"] = trainer.updater.iteration config_session.set_metadata_modified_time() config_session.save_to(self.save_best_model_to + ".config") # json.dump(config_session, open(self.save_best_model_to + ".config", # "w"), indent=2, separators=(',', ': ')) else: log.info("no bleu (%s) improvement: %f >= %f" % (self.observation_name, self.best_bleu, bleu))
Example #27
Source File: training_chainer.py From knmt with GNU General Public License v3.0 | 5 votes |
def __call__(self, trainer): encdec = trainer.updater.get_optimizer("main").target log.info("computing %s" % self.observation_name) dev_loss = compute_loss_all(encdec, self.data, self.eos_idx, self.mb_size, gpu=self.gpu, reverse_src=self.reverse_src, reverse_tgt=self.reverse_tgt, use_chainerx=self.use_chainerx) log.info("%s: %f (current best: %r)" % (self.observation_name, dev_loss, self.best_loss)) chainer.reporter.report({self.observation_name: dev_loss}) if self.best_loss is None or self.best_loss > dev_loss: log.info("loss (%s) improvement: %r -> %r" % (self.observation_name, self.best_loss, dev_loss)) self.best_loss = dev_loss if self.save_best_model_to is not None: log.info("saving best loss (%s) model to %s" % (self.observation_name, self.save_best_model_to,)) serializers.save_npz(self.save_best_model_to, encdec) if self.config_training is not None: config_session = self.config_training.copy(readonly=False) config_session.add_section("model_parameters", keep_at_bottom="metadata") config_session["model_parameters"]["filename"] = self.save_best_model_to config_session["model_parameters"]["type"] = "model" config_session["model_parameters"]["description"] = "best_loss" config_session["model_parameters"]["infos"] = argument_parsing_tools.OrderedNamespace() config_session["model_parameters"]["infos"]["loss"] = float(dev_loss) config_session["model_parameters"]["infos"]["iteration"] = trainer.updater.iteration config_session.set_metadata_modified_time() config_session.save_to(self.save_best_model_to + ".config") # json.dump(config_session, open(self.save_best_model_to + ".config", "w"), indent=2, separators=(',', ': '))
Example #28
Source File: mnist.py From cloudml-samples with Apache License 2.0 | 4 votes |
def main(): # Training settings args = get_args() # Set up a neural network to train model = L.Classifier(Net()) if args.gpu >= 0: # Make a specified GPU current chainer.backends.cuda.get_device_from_id(args.gpu).use() model.to_gpu() # Copy the model to the GPU # Setup an optimizer optimizer = chainer.optimizers.MomentumSGD(lr=args.lr, momentum=args.momentum) optimizer.setup(model) # Load the MNIST dataset train, test = chainer.datasets.get_mnist(ndim=3) train_iter = chainer.iterators.SerialIterator(train, args.batch_size) test_iter = chainer.iterators.SerialIterator(test, args.test_batch_size, repeat=False, shuffle=False) # Set up a trainer updater = training.updaters.StandardUpdater( train_iter, optimizer, device=args.gpu) trainer = training.Trainer(updater, (args.epochs, 'epoch')) # Evaluate the model with the test dataset for each epoch trainer.extend(extensions.Evaluator(test_iter, model, device=args.gpu)) # Write a log of evaluation statistics for each epoch trainer.extend(extensions.LogReport()) # Print selected entries of the log to stdout trainer.extend(extensions.PrintReport( ['epoch', 'main/loss', 'validation/main/loss', 'main/accuracy', 'validation/main/accuracy', 'elapsed_time'])) # Send selected entries of the log to CMLE HP tuning system trainer.extend( HpReport(hp_metric_val='validation/main/loss', hp_metric_tag='my_loss')) if args.resume: # Resume from a snapshot tmp_model_file = os.path.join('/tmp', MODEL_FILE_NAME) if not os.path.exists(tmp_model_file): subprocess.check_call([ 'gsutil', 'cp', os.path.join(args.model_dir, MODEL_FILE_NAME), tmp_model_file]) if os.path.exists(tmp_model_file): chainer.serializers.load_npz(tmp_model_file, trainer) trainer.run() if args.model_dir: tmp_model_file = os.path.join('/tmp', MODEL_FILE_NAME) serializers.save_npz(tmp_model_file, model) subprocess.check_call([ 'gsutil', 'cp', tmp_model_file, os.path.join(args.model_dir, MODEL_FILE_NAME)])
Example #29
Source File: train.py From ConvLSTM with MIT License | 4 votes |
def train(): parser = argparse.ArgumentParser() parser.add_argument('--gpu', '-g', type=int, default=-1) parser.add_argument('--model', '-m', type=str, default=None) parser.add_argument('--opt', type=str, default=None) parser.add_argument('--epoch', '-e', type=int, default=3) parser.add_argument('--lr', '-l', type=float, default=0.001) parser.add_argument('--inf', type=int, default=10) parser.add_argument('--outf', type=int, default=10) parser.add_argument('--batch', '-b', type=int, default=8) args = parser.parse_args() train = dataset.MovingMnistDataset(0, 7000, args.inf, args.outf) train_iter = iterators.SerialIterator(train, batch_size=args.batch, shuffle=True) test = dataset.MovingMnistDataset(7000, 10000, args.inf, args.outf) test_iter = iterators.SerialIterator(test, batch_size=args.batch, repeat=False, shuffle=False) model = network.MovingMnistNetwork(sz=[128,64,64], n=2) if args.model != None: print( "loading model from " + args.model ) serializers.load_npz(args.model, model) if args.gpu >= 0: cuda.get_device_from_id(0).use() model.to_gpu() opt = optimizers.Adam(alpha=args.lr) opt.setup(model) if args.opt != None: print( "loading opt from " + args.opt ) serializers.load_npz(args.opt, opt) updater = training.StandardUpdater(train_iter, opt, device=args.gpu) trainer = training.Trainer(updater, (args.epoch, 'epoch'), out='results') trainer.extend(extensions.Evaluator(test_iter, model, device=args.gpu)) trainer.extend(extensions.LogReport(trigger=(10, 'iteration'))) trainer.extend(extensions.PrintReport(['epoch', 'main/loss', 'validation/main/loss'])) trainer.extend(extensions.ProgressBar(update_interval=1)) trainer.run() modelname = "./results/model" print( "saving model to " + modelname ) serializers.save_npz(modelname, model) optname = "./results/opt" print( "saving opt to " + optname ) serializers.save_npz(optname, opt)