Как создать модель тензорного потока для работы с нулевыми входными данными? Получение «Тип: Null не имеет ожидаемого типа: float»

#python #tensorflow #tensorflow-serving

Вопрос:

Я меняю запрос на API обслуживания TF, скажем, с

 { 
    "inputs": [
        [-1, -1]
   ] 
}
 

Для

 {
    "inputs": {
        "feature_name_1": -1,
        "feature_name_2": -1
    }
}
 

Я могу добиться этого, используя слой ввода, который требует указать тип данных, и в моем случае я хочу, чтобы он float32 был красивым и чистым.

Проблема в том , что некоторые значения, как ожидается, придут как null , поэтому я должен заменить их на то, что я хочу (скажем null , преобразуется в -10 ) внутри самой модели, например, с помощью лямбда-слоя.

Проблема в том, что я не могу заставить его работать с null типом данных. В случае

 {
    "inputs": {
        "feature_name_1": null,
        "feature_name_2": -1
    }
}
 

Я получаю

 {
    "error": "JSON Value: null Type: Null is not of expected type: float"
}
 

Существует некоторый обходной путь, который мне совсем не нравится, и я хочу найти другое решение: входной слой dtype можно изменить String , и при построении запроса мы можем привести каждое значение String , чтобы оно стало

 {
    "inputs": {
        "feature_name_1": "null",
        "feature_name_2": "-1"
    }
}
 

Но, на мой взгляд, это неправильно, так "null" как это не то, что есть на самом деле null . Также отправка числовых значений -1 String "-1" также кажется мне неправильной.

Есть ли способ заставить модель принимать любой тип входных данных и выполнять всю обработку внутри самой модели? Можно ли построить входной слой, ожидая любого типа данных? Или другое решение без входных слоев?

Я был бы очень признателен за любую помощь, так как это заставляет меня думать об этом без остановки, и я все еще не могу решить эту проблему