В коде, который вы указали, есть по крайней мере 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(),
....
});
В первой части вашего вопроса (где находится метка?):
Метка 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)