Esempio n. 1
0
elif pretrained_bert_parameters:
    # only load BertModel parameters
    nlp.utils.load_parameters(bert,
                              pretrained_bert_parameters,
                              ctx=ctx,
                              ignore_extra=True,
                              cast_dtype=True)
    net.span_classifier.initialize(init=mx.init.Normal(0.02), ctx=ctx)
elif pretrained:
    # only load BertModel parameters
    net.span_classifier.initialize(init=mx.init.Normal(0.02), ctx=ctx)
else:
    # no checkpoint is loaded
    net.initialize(init=mx.init.Normal(0.02), ctx=ctx)

net.hybridize(static_alloc=True)

loss_function = BertForQALoss()
loss_function.hybridize(static_alloc=True)


def train():
    """Training function."""
    segment = 'train' if not args.debug else 'dev'
    log.info('Loading %s data...', segment)
    if version_2:
        train_data = SQuAD(segment, version='2.0')
    else:
        train_data = SQuAD(segment, version='1.1')
    if args.debug:
        sampled_data = [train_data[i] for i in range(1000)]
Esempio n. 2
0
elif pretrained_bert_parameters:
    # only load BertModel parameters
    nlp.utils.load_parameters(bert,
                              pretrained_bert_parameters,
                              ctx=ctx,
                              ignore_extra=True,
                              cast_dtype=True)
    net.span_classifier.initialize(init=mx.init.Normal(0.02), ctx=ctx)
elif pretrained:
    # only load BertModel parameters
    net.span_classifier.initialize(init=mx.init.Normal(0.02), ctx=ctx)
else:
    # no checkpoint is loaded
    net.initialize(init=mx.init.Normal(0.02), ctx=ctx)

net.hybridize(static_alloc=True)

loss_function = BertForQALoss()
loss_function.hybridize(static_alloc=True)

if deploy:
    logging.info(
        'load symbol file directly as SymbolBlock for model deployment')
    net = mx.gluon.SymbolBlock.imports(
        '{}-symbol.json'.format(args.model_prefix),
        ['data0', 'data1', 'data2'],
        '{}-0000.params'.format(args.model_prefix))
    net.hybridize(static_alloc=True, static_shape=True)

# calibration config
only_calibration = args.only_calibration