Apache MXNet - преобразование между глюоном и модулем (и наоборот)?

В коде, который вы указали, есть по крайней мере 2 проблемы.

Сначала ваш метод помечен атрибутом [ValidateAntiForgeryToken], но вы не передаете токен, поэтому метод никогда не будет запущен. Либо удалите атрибут, либо включите его (это предполагает, что ваша форма включает @Html.AntiForgeryToken())

data: { 
    __RequestVerificationToken: $('[name=__RequestVerificationToken]').val(),      
    .... // your other properties
},

Во-вторых, ваша публикация объекта javascript, поэтому вам нужно удалить опцию contentType: "application/json; charset=utf-8", (или, альтернативно, вы необходимо сгенерировать данные, используя JSON.stringify()

. Замечание: его непонятно, из какого кода вы вручную создаете объект для отправки на контроллер. Если ваши элементы формы основаны на SaveGameViewModel и правильно сгенерированный с помощью строго типизированных html-помощников, вы можете отправить его обратно с помощью

$.ajax({
    data: $('form').serialize(),
    ....
});
1
задан OneRaynyDay 13 July 2018 в 21:16
поделиться

1 ответ

В первой части вашего вопроса (где находится метка?):

Метка softmax добавляется по умолчанию, когда вы добавляете label_shapes = data_iter.provide_label arg к вызову mod.bind. Вы можете удалить это, установив явно установку label_shapes = None. См. Ответ на https://discuss.mxnet.io/t/gluon-module-what-is-label-name-and-why-do-i-need-labels-for-modules-to-run -bind / 1433 .

Для второй части вашего вопроса (как правильно преобразовать модуль в глюонную модель?):

Чтобы преобразовать символическую модель в gluon, вы можете

  • сохранить символическую модель на диск с помощью mod.save_checkpoint или mod.save_params
  • воссоздать свою сетевую архитектуру с помощью глюона или повторного использования net
  • загружает параметры с помощью net.load_params(filename, ctx=ctx)

Например:

mod.save_params('mxnet.params')
net2 = gluon.nn.HybridSequential()
with net2.name_scope():
    net2.add(gluon.nn.Conv2D(channels=20, kernel_size=5, activation='relu'))
    net2.add(gluon.nn.MaxPool2D(pool_size=2, strides=2))
    net2.add(gluon.nn.Conv2D(channels=50, kernel_size=5, activation='relu'))
    net2.add(gluon.nn.MaxPool2D(pool_size=2, strides=2))
    net2.add(gluon.nn.Flatten())
    net2.add(gluon.nn.Dense(num_fc, activation="relu"))
    net2.add(gluon.nn.Dense(num_outputs))

net2.hybridize()
net2.load_params('mxnet.params', ctx=ctx)
0
ответ дан sad- 17 August 2018 в 12:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: