Тензор 'embedding_input' имеет недопустимую форму '[None, None]'

Возможно, причина, по которой вы читаете пустые ячейки, связана с использованием правильного подкомпонента Apache POI для чтения файлов Excel. Используйте HSSF (Horrible SpreadSheet Format) для форматов XLS и XSSF (формат XML SpreadSheet) для форматов XLSX.


Что касается самого кода, вы можете уточнить свое логическое выражение. Теперь, когда вы используете этот или оператор (||),

  • , первая часть вашего оператора if будет выполняться, если str != null и
  • часть else вашего оператора if будет выполняться, если str == null.

Первая часть оператора if вызовет NumberFormatException при вызове Double.parseDouble, если str не может быть проанализирован как число.

Возможно, следующий фрагмент кода поможет вам:

if (str == null || str.trim().isEmpty()) {
    // handle null and empty strings
} else if (cell.getType() == Cell.CELL_TYPE_NUMERIC) {
    System.out.println("Cell is numeric.");
    num = cell.getNumericCellValue();
} else {
    // If the cell is not numeric, Double.parseDouble(str) 
    // will most likely throw a NumberFormatException
}

Чтобы узнать больше о Cell, прочитайте его Javadoc .

2
задан Tomáš Bezouška 17 January 2019 в 15:50
поделиться

1 ответ

Преобразователю требуется знать форму входного тензора. Только 1-е измерение (партия) может быть неизвестно (None). В некоторых случаях Keras не аннотирует известную тензорную форму. Вы можете указать входную форму, передав необязательный аргумент input_shapes:

converter = tf.contrib.lite.TFLiteConverter.from_keras_model_file(
    graphFile,
    input_shapes={'embedding_input': [1, vocab_size]}
)

См. Также похожую проблему: Tensorflow - ошибка преобразования модели h5 в tflite

0
ответ дан miaout17 17 January 2019 в 15:50
поделиться
Другие вопросы по тегам:

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