#javascript #python #keras #tensorflowjs-converter
#javascript #python #keras #tensorflowjs-конвертер
Вопрос:
Я новичок в машинном обучении, и я следил за этим блогом о том, как написать модель с помощью mobilenet.
Мне удалось преобразовать файловую модель .h5 и я попытался реализовать ее в своем веб-приложении.
К сожалению, когда я пытаюсь загрузить модель JSON, я получаю эту ошибку:
Не перехваченный (в обещании) Ошибка: Предоставленные данные о весе не имеют целевой переменной: block1_conv1_2 /kernel.
Я преобразовал модель .h5 в командной строке следующим образом:
tensorflowjs_converter —input_format keras model.h5 Преобразованная модель/
Код для загрузки модели в браузере, я следил за этим блогом
let model;
async function loadModel(name) {
$(".progress-bar").show();
model = undefined;
model = await tf.loadModel(`ConvertedModel/model.json`);
$(".progress-bar").hide();
}
Чтобы увидеть код модели, пожалуйста, обратитесь к ссылке на блог.
Но ниже приведен скриншот того, как компилируется модель.
Компиляция модели
Зависимости:
- Tensorflow 1.13.1
- Python 3.6.0
- tensorflowjs 1.0.1
Будем признательны за любую помощь по исправлению этого. Большое вам спасибо.
Комментарии:
1. У меня были похожие проблемы, которые были решены путем обновления с tfjs
1.2.11
на1.3.2
.
Ответ №1:
Похоже, вы столкнулись с этой ошибкой, когда к некоторым вашим весам был добавлен дополнительный суффикс.
Вы можете обойти эту проблему, вручную удалив эти дополнительные суффиксы из вашего model.json:
block1_conv1_2/kernel
вместо этого должно быть:
block1_conv1/kernel
Ошибка ‘Error in clip’ теперь исправлена, поэтому я не слишком уверен, почему вы получили эту ошибку, но еще раз вы можете обойти это, вручную отредактировав model.json и изменив каждый экземпляр:
{"type":"ndarray", "value":6}
Для
6
Комментарии:
1. Здравствуйте! Спасибо за ваш ответ. Ваше предложение удалило сообщение об ошибке, которое у меня было, но вернуло это теперь без перехвата (в обещании) Ошибка: Ошибка в clip: min (0) должно быть меньше или равно max ([object объект]). при утверждении (util.ts:81) в clipByValue_ (unary_ops.ts:335) в clipByValue (operation.ts:46) при t.call (advanced_activations.ts:59) в topology.ts:998 в NameScope (common.ts: 52) при t.apply (topology.ts: 957) в executeInternal (исполнитель. ts: 199) в executeInternal (executor.ts:194) в executeInternal (executor.ts:194)
2. @Rstynbl Я обновил свой ответ исправлением и для этого. Надеюсь, это поможет!
3. Я полагаю, что это должно быть просто: > «max_value»: 6.0, <
4. Спасибо! Да, теперь это работает! извините за последний запрос, глупая ошибка! спасибо за всю вашу помощь!
5. Рад, что помогли!