本文整理匯總了Python中chainer.training.extensions.PlotReport方法的典型用法代碼示例。如果您正苦於以下問題:Python extensions.PlotReport方法的具體用法?Python extensions.PlotReport怎麽用?Python extensions.PlotReport使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類chainer.training.extensions
的用法示例。
在下文中一共展示了extensions.PlotReport方法的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: main
# 需要導入模塊: from chainer.training import extensions [as 別名]
# 或者: from chainer.training.extensions import PlotReport [as 別名]
def main():
parser = argparse.ArgumentParser(description='Chainer example: MNIST')
parser.add_argument('--batchsize', '-b', type=int, default=7,
help='Number of images in each mini-batch')
parser.add_argument('--epoch', '-e', type=int, default=20,
help='Number of sweeps over the dataset to train')
parser.add_argument('--frequency', '-f', type=int, default=-1,
help='Frequency of taking a snapshot')
parser.add_argument('--gpu', '-g', type=int, default=-1,
help='GPU ID (negative value indicates CPU)')
parser.add_argument('--out', '-o', default='result',
help='Directory to output the result')
parser.add_argument('--resume', '-r', default='',
help='Resume the training from snapshot')
parser.add_argument('--unit', '-u', type=int, default=1000,
help='Number of units')
parser.add_argument('--noplot', dest='plot', action='store_false',
help='Disable PlotReport extension')
parser.add_argument('--onnx', default='',
help='Export ONNX model')
parser.add_argument('--model', '-m', default='model.npz',
help='Model file name to serialize')
parser.add_argument('--timeout', type=int, default=0,
help='Enable timeout')
parser.add_argument('--trace', default='',
help='Enable tracing')
parser.add_argument('--run_training', action='store_true',
help='Run training')
args = parser.parse_args()
main_impl(args)
示例2: main
# 需要導入模塊: from chainer.training import extensions [as 別名]
# 或者: from chainer.training.extensions import PlotReport [as 別名]
def main():
archs = {
'alex': alex.Alex,
'nin': nin.NIN,
'resnet50': resnet50.ResNet50,
}
parser = argparse.ArgumentParser(
description='Learning convnet from ILSVRC2012 dataset')
parser.add_argument('--arch', '-a', choices=archs.keys(),
default='resnet50',
help='Convnet architecture')
parser.add_argument('--train', default='',
help='Path to training image-label list file')
parser.add_argument('--val', default='',
help='Path to validation image-label list file')
parser.add_argument('--batchsize', '-B', type=int, default=32,
help='Learning minibatch size')
parser.add_argument('--epoch', '-E', type=int, default=10,
help='Number of epochs to train')
parser.add_argument('--frequency', '-f', type=int, default=-1,
help='Frequency of taking a snapshot')
parser.add_argument('--gpu', '-g', type=int, default=-1,
help='GPU ID (negative value indicates CPU')
parser.add_argument('--initmodel',
help='Initialize the model from given file')
parser.add_argument('--loaderjob', '-j', type=int,
help='Number of parallel data loading processes')
parser.add_argument('--mean', '-m', default='mean.npy',
help='Mean file (computed by compute_mean.py)')
parser.add_argument('--noplot', dest='plot', action='store_false',
help='Disable PlotReport extension')
parser.add_argument('--resume', '-r', default='',
help='Initialize the trainer from given file')
parser.add_argument('--out', '-o', default='result',
help='Output directory')
parser.add_argument('--root', '-R', default='.',
help='Root directory path of image files')
parser.add_argument('--val_batchsize', '-b', type=int, default=250,
help='Validation minibatch size')
parser.add_argument('--test', action='store_true')
parser.add_argument('--run_training', action='store_true',
help='Run training')
parser.set_defaults(test=False)
args = parser.parse_args()
model_cls = archs[args.arch]
main_impl(args, model_cls)
# TODO(hamaji): Stop writing a file to scripts.
with open('scripts/%s_stamp' % args.arch, 'w'): pass
示例3: run_training
# 需要導入模塊: from chainer.training import extensions [as 別名]
# 或者: from chainer.training.extensions import PlotReport [as 別名]
def run_training(args, model):
trainer = create_trainer(args, model)
# Dump a computational graph from 'loss' variable at the first iteration
# The "main" refers to the target link of the "main" optimizer.
trainer.extend(extensions.dump_graph('main/loss'))
# Take a snapshot for each specified epoch
frequency = args.epoch if args.frequency == -1 else max(1, args.frequency)
trainer.extend(extensions.snapshot(), trigger=(frequency, 'epoch'))
# Write a log of evaluation statistics for each epoch
trainer.extend(extensions.LogReport())
# Save two plot images to the result dir
if args.plot and extensions.PlotReport.available():
trainer.extend(
extensions.PlotReport(['main/loss', 'validation/main/loss'],
'epoch', file_name='loss.png'))
trainer.extend(
extensions.PlotReport(
['main/accuracy', 'validation/main/accuracy'],
'epoch', file_name='accuracy.png'))
# Print selected entries of the log to stdout
# Here "main" refers to the target link of the "main" optimizer again, and
# "validation" refers to the default name of the Evaluator extension.
# Entries other than 'epoch' are reported by the Classifier link, called by
# either the updater or the evaluator.
trainer.extend(extensions.PrintReport(
['epoch', 'main/loss', 'validation/main/loss',
'main/accuracy', 'validation/main/accuracy', 'elapsed_time']))
# Print a progress bar to stdout
trainer.extend(extensions.ProgressBar())
if args.resume:
# Resume from a snapshot
chainer.serializers.load_npz(args.resume, trainer)
# Run the training
trainer.run()
示例4: train_main
# 需要導入模塊: from chainer.training import extensions [as 別名]
# 或者: from chainer.training.extensions import PlotReport [as 別名]
def train_main(args):
"""
trains model specfied in args.
main method for train subcommand.
"""
# load text
with open(args.text_path) as f:
text = f.read()
logger.info("corpus length: %s.", len(text))
# data iterator
data_iter = DataIterator(text, args.batch_size, args.seq_len)
# load or build model
if args.restore:
logger.info("restoring model.")
load_path = args.checkpoint_path if args.restore is True else args.restore
model = load_model(load_path)
else:
net = Network(vocab_size=VOCAB_SIZE,
embedding_size=args.embedding_size,
rnn_size=args.rnn_size,
num_layers=args.num_layers,
drop_rate=args.drop_rate)
model = L.Classifier(net)
# make checkpoint directory
log_dir = make_dirs(args.checkpoint_path)
with open("{}.json".format(args.checkpoint_path), "w") as f:
json.dump(model.predictor.args, f, indent=2)
chainer.serializers.save_npz(args.checkpoint_path, model)
logger.info("model saved: %s.", args.checkpoint_path)
# optimizer
optimizer = chainer.optimizers.Adam(alpha=args.learning_rate)
optimizer.setup(model)
# clip gradient norm
optimizer.add_hook(chainer.optimizer.GradientClipping(args.clip_norm))
# trainer
updater = BpttUpdater(data_iter, optimizer)
trainer = chainer.training.Trainer(updater, (args.num_epochs, 'epoch'), out=log_dir)
trainer.extend(extensions.snapshot_object(model, filename=os.path.basename(args.checkpoint_path)))
trainer.extend(extensions.ProgressBar(update_interval=1))
trainer.extend(extensions.LogReport())
trainer.extend(extensions.PlotReport(y_keys=["main/loss"]))
trainer.extend(LoggerExtension(text))
# training start
model.predictor.reset_state()
logger.info("start of training.")
time_train = time.time()
trainer.run()
# training end
duration_train = time.time() - time_train
logger.info("end of training, duration: %ds.", duration_train)
# generate text
seed = generate_seed(text)
generate_text(model, seed, 1024, 3)
return model
示例5: get_trainer
# 需要導入模塊: from chainer.training import extensions [as 別名]
# 或者: from chainer.training.extensions import PlotReport [as 別名]
def get_trainer(optimizer, iter_train, iter_valid, iter_valid_raw,
class_names, args):
model = optimizer.target
updater = chainer.training.StandardUpdater(
iter_train, optimizer, device=args.gpu)
trainer = chainer.training.Trainer(
updater, (args.max_iteration, 'iteration'), out=args.out)
trainer.extend(fcn.extensions.ParamsReport(args.__dict__))
trainer.extend(extensions.ProgressBar(update_interval=5))
trainer.extend(extensions.LogReport(
trigger=(args.interval_print, 'iteration')))
trainer.extend(extensions.PrintReport(
['epoch', 'iteration', 'elapsed_time',
'main/loss', 'validation/main/miou']))
def pred_func(x):
model(x)
return model.score
trainer.extend(
fcn.extensions.SemanticSegmentationVisReport(
pred_func, iter_valid_raw,
transform=fcn.datasets.transform_lsvrc2012_vgg16,
class_names=class_names, device=args.gpu, shape=(4, 2)),
trigger=(args.interval_eval, 'iteration'))
trainer.extend(
chainercv.extensions.SemanticSegmentationEvaluator(
iter_valid, model, label_names=class_names),
trigger=(args.interval_eval, 'iteration'))
trainer.extend(extensions.snapshot_object(
target=model, filename='model_best.npz'),
trigger=chainer.training.triggers.MaxValueTrigger(
key='validation/main/miou',
trigger=(args.interval_eval, 'iteration')))
assert extensions.PlotReport.available()
trainer.extend(extensions.PlotReport(
y_keys=['main/loss'], x_key='iteration',
file_name='loss.png', trigger=(args.interval_print, 'iteration')))
trainer.extend(extensions.PlotReport(
y_keys=['validation/main/miou'], x_key='iteration',
file_name='miou.png', trigger=(args.interval_print, 'iteration')))
return trainer
示例6: train_one_epoch
# 需要導入模塊: from chainer.training import extensions [as 別名]
# 或者: from chainer.training.extensions import PlotReport [as 別名]
def train_one_epoch(model, train_data, lr, gpu, batchsize, out):
train_model = PixelwiseSoftmaxClassifier(model)
if gpu >= 0:
# Make a specified GPU current
chainer.cuda.get_device_from_id(gpu).use()
train_model.to_gpu() # Copy the model to the GPU
log_trigger = (0.1, 'epoch')
validation_trigger = (1, 'epoch')
end_trigger = (1, 'epoch')
train_data = TransformDataset(
train_data, ('img', 'label_map'), SimpleDoesItTransform(model.mean))
val = VOCSemanticSegmentationWithBboxDataset(
split='val').slice[:, ['img', 'label_map']]
# Iterator
train_iter = iterators.MultiprocessIterator(train_data, batchsize)
val_iter = iterators.MultiprocessIterator(
val, 1, shuffle=False, repeat=False, shared_mem=100000000)
# Optimizer
optimizer = optimizers.MomentumSGD(lr=lr, momentum=0.9)
optimizer.setup(train_model)
optimizer.add_hook(chainer.optimizer_hooks.WeightDecay(rate=0.0001))
# Updater
updater = training.updaters.StandardUpdater(
train_iter, optimizer, device=gpu)
# Trainer
trainer = training.Trainer(updater, end_trigger, out=out)
trainer.extend(extensions.LogReport(trigger=log_trigger))
trainer.extend(extensions.observe_lr(), trigger=log_trigger)
trainer.extend(extensions.dump_graph('main/loss'))
if extensions.PlotReport.available():
trainer.extend(extensions.PlotReport(
['main/loss'], x_key='iteration',
file_name='loss.png'))
trainer.extend(extensions.PlotReport(
['validation/main/miou'], x_key='iteration',
file_name='miou.png'))
trainer.extend(extensions.snapshot_object(
model, filename='snapshot.npy'),
trigger=end_trigger)
trainer.extend(extensions.PrintReport(
['epoch', 'iteration', 'elapsed_time', 'lr',
'main/loss', 'validation/main/miou',
'validation/main/mean_class_accuracy',
'validation/main/pixel_accuracy']),
trigger=log_trigger)
trainer.extend(extensions.ProgressBar(update_interval=10))
trainer.extend(
SemanticSegmentationEvaluator(
val_iter, model,
voc_semantic_segmentation_label_names),
trigger=validation_trigger)
trainer.run()
示例7: main
# 需要導入模塊: from chainer.training import extensions [as 別名]
# 或者: from chainer.training.extensions import PlotReport [as 別名]
def main():
gpu, out = -1, "result"
stepsize = 0.001
batchsize, epoch = 10000, 10
beta, gamma = 0., 1.
data_id, prior = 0, .5
n_p, n_n, n_u, n_t, n_vp, n_vn, n_vu = 100, 0, 10000, 100, 20, 20, 100
data_name, x_p, x_n, x_u, y_u, x_t, y_t, x_vp, x_vn, x_vu, y_vu \
= load_dataset(data_id, n_p, n_n, n_u, prior, n_t, n_vp=n_vp, n_vn=n_vn, n_vu=n_vu)
x_p, x_n, x_u, x_t, x_vp, x_vn, x_vu = x_p.astype(np.float32), x_n.astype(np.float32), \
x_u.astype(np.float32), x_t.astype(np.float32), x_vp.astype(np.float32), \
x_vn.astype(np.float32), x_vu.astype(np.float32),
XYtrain = TupleDataset(np.r_[x_p, x_u], np.r_[np.ones(100), np.zeros(10000)].astype(np.int32))
XYtest = TupleDataset(np.r_[x_vp, x_vu], np.r_[np.ones(20), np.zeros(100)].astype(np.int32))
train_iter = chainer.iterators.SerialIterator(XYtrain, batchsize)
test_iter = chainer.iterators.SerialIterator(XYtest, batchsize, repeat=False, shuffle=False)
loss_type = lambda x: F.sigmoid(-x)
nnpu_risk = PU_Risk(prior, loss=loss_type, nnPU=True, gamma=gamma, beta=beta)
pu_acc = PU_Accuracy(prior)
model = L.Classifier(MLP(), lossfun=nnpu_risk, accfun=pu_acc)
if gpu >= 0:
chainer.backends.cuda.get_device_from_id(gpu).use()
model.to_gpu(gpu)
optimizer = chainer.optimizers.Adam(alpha=stepsize)
optimizer.setup(model)
optimizer.add_hook(chainer.optimizer.WeightDecay(0.005))
updater = chainer.training.StandardUpdater(train_iter, optimizer, device=gpu)
trainer = chainer.training.Trainer(updater, (epoch, 'epoch'), out=out)
trainer.extend(extensions.LogReport(trigger=(1, 'epoch')))
trainer.extend(extensions.Evaluator(test_iter, model, device=gpu))
trainer.extend(extensions.ProgressBar())
trainer.extend(extensions.PrintReport(
['epoch', 'main/loss', 'validation/main/loss',
'main/accuracy', 'validation/main/accuracy',
'elapsed_time']))
key = 'validation/main/accuracy'
model_name = 'model'
trainer.extend(extensions.snapshot_object(model, model_name),
trigger=chainer.training.triggers.MaxValueTrigger(key))
if extensions.PlotReport.available():
trainer.extend(
extensions.PlotReport(['main/loss', 'validation/main/loss'], 'epoch', file_name=f'loss_curve.png'))
trainer.extend(
extensions.PlotReport(['main/accuracy', 'validation/main/accuracy'],
'epoch', file_name=f'accuracy_curve.png'))
trainer.run()
yh = pred(model, x_t, batchsize, gpu)
mr = prior*np.mean(yh[y_t == +1] <= 0) + (1-prior)*np.mean(yh[y_t == -1] >= 0)
print("mr: {}".format(mr))
示例8: register_extensions
# 需要導入模塊: from chainer.training import extensions [as 別名]
# 或者: from chainer.training.extensions import PlotReport [as 別名]
def register_extensions(trainer, model, test_iter, args):
if args.mode.startswith('seg'):
# Max accuracy
best_trigger = training.triggers.BestValueTrigger(
'validation/main/accuracy', lambda a, b: a < b, (1, 'epoch'))
elif args.mode.startswith('mat'):
# Min loss
best_trigger = training.triggers.BestValueTrigger(
'validation/main/loss', lambda a, b: a > b, (1, 'epoch'))
else:
logger.error('Invalid training mode')
# Segmentation extensions
trainer.extend(
custom_extensions.PortraitVisEvaluator(
test_iter, model, device=args.gpus[0],
converter=select_converter(args.mode),
filename='vis_epoch={epoch}_idx={index}.jpg',
mode=args.mode
), trigger=(1, 'epoch'))
# Basic extensions
trainer.extend(extensions.dump_graph('main/loss'))
trainer.extend(extensions.LogReport(trigger=(200, 'iteration')))
trainer.extend(extensions.ProgressBar(update_interval=20))
trainer.extend(extensions.PrintReport(
['epoch', 'main/loss', 'validation/main/loss', 'main/accuracy',
'validation/main/accuracy', 'lr', 'elapsed_time']))
trainer.extend(extensions.observe_lr(), trigger=(200, 'iteration'))
# Snapshots
trainer.extend(extensions.snapshot(
filename='snapshot_epoch_{.updater.epoch}'
), trigger=(5, 'epoch'))
trainer.extend(extensions.snapshot_object(
model, filename='model_best'
), trigger=best_trigger)
# ChainerUI extensions
trainer.extend(chainerui.extensions.CommandsExtension())
chainerui.utils.save_args(args, args.out)
# Plotting extensions
if extensions.PlotReport.available():
trainer.extend(
extensions.PlotReport(
['main/loss', 'validation/main/loss'],
'epoch', file_name='loss.png'))
trainer.extend(
extensions.PlotReport(
['main/accuracy', 'validation/main/accuracy'],
'epoch', file_name='accuracy.png'))
示例9: main
# 需要導入模塊: from chainer.training import extensions [as 別名]
# 或者: from chainer.training.extensions import PlotReport [as 別名]
def main(resume, gpu, load_path, data_path):
dataset = Dataset(data_path)
GenNetwork = MultiScaleGenerator(c.SCALE_FMS_G, c.SCALE_KERNEL_SIZES_G)
DisNetwork = MultiScaleDiscriminator(c.SCALE_CONV_FMS_D, c.SCALE_KERNEL_SIZES_D, c.SCALE_FC_LAYER_SIZES_D)
optimizers = {}
optimizers["GeneratorNetwork"] = chainer.optimizers.SGD(c.LRATE_G)
optimizers["DiscriminatorNetwork"] = chainer.optimizers.SGD(c.LRATE_D)
iterator = chainer.iterators.SerialIterator(dataset, 1)
params = {'LAM_ADV': 0.05, 'LAM_LP': 1, 'LAM_GDL': .1}
updater = Updater(iterators=iterator, optimizers=optimizers,
GeneratorNetwork=GenNetwork,
DiscriminatorNetwork=DisNetwork,
params=params,
device=gpu
)
if gpu>=0:
updater.GenNetwork.to_gpu()
updater.DisNetwork.to_gpu()
trainer = chainer.training.Trainer(updater, (500000, 'iteration'), out='result')
trainer.extend(extensions.snapshot(filename='snapshot'), trigger=(1, 'iteration'))
trainer.extend(extensions.snapshot_object(trainer.updater.GenNetwork, "GEN"))
trainer.extend(saveGen)
log_keys = ['epoch', 'iteration', 'GeneratorNetwork/L2Loss', 'GeneratorNetwork/GDL',
'DiscriminatorNetwork/DisLoss', 'GeneratorNetwork/CompositeGenLoss']
print_keys = ['GeneratorNetwork/CompositeGenLoss','DiscriminatorNetwork/DisLoss']
trainer.extend(extensions.LogReport(keys=log_keys, trigger=(10, 'iteration')))
trainer.extend(extensions.PrintReport(print_keys), trigger=(10, 'iteration'))
trainer.extend(extensions.PlotReport(['DiscriminatorNetwork/DisLoss'], 'iteration', (10, 'iteration'), file_name="DisLoss.png"))
trainer.extend(extensions.PlotReport(['GeneratorNetwork/CompositeGenLoss'], 'iteration', (10, 'iteration'), file_name="GenLoss.png"))
trainer.extend(extensions.PlotReport(['GeneratorNetwork/AdvLoss'], 'iteration', (10, 'iteration'), file_name="AdvGenLoss.png"))
trainer.extend(extensions.PlotReport(['GeneratorNetwork/AdvLoss','DiscriminatorNetwork/DisLoss'], 'iteration', (10, 'iteration'), file_name="AdversarialLosses.png"))
trainer.extend(extensions.PlotReport(['GeneratorNetwork/L2Loss'], 'iteration', (10, 'iteration'),file_name="L2Loss.png"))
trainer.extend(extensions.PlotReport(['GeneratorNetwork/GDL'], 'iteration', (10, 'iteration'),file_name="GDL.png"))
trainer.extend(extensions.ProgressBar(update_interval=10))
if resume:
# Resume from a snapshot
chainer.serializers.load_npz(load_path, trainer)
print(trainer.updater.__dict__)
trainer.run()