Как проверить модель Tensorflowlite с несколькими входами? - PullRequest
0 голосов
/ 18 ноября 2018

Я создал простую модель MLP Regression Keras с 4 входами и одним выходом.Я конвертировал эту модель в TFlite, теперь я просто пытаюсь выяснить, как протестировать ее на Android Studio.Как я могу ввести несколько объектов 4D для тестирования в Java?Следующее выдает ошибку при попытке запустить модель:

try{
            tflite = new Interpreter(loadModelFile());
        }
        catch(Exception ex){
            ex.printStackTrace();
        }   

double[][] inp= new double[1][4];
    inp[0][1]= 0;
    inp[0][0] = 0;
    inp[0][2]= 0;
    inp[0][3]=-2.01616982303105;

    double[] output = new double[100];

    tflite.run(inp,output);

РЕДАКТИРОВАТЬ: Вот модель, которую я первоначально создал:

# create model
model = Sequential()
model.add(Dense(50, activation="tanh", input_dim=4, 
kernel_initializer="random_uniform", name="input_tensor"))
model.add(Dense(50, activation="tanh", 
kernel_initializer="random_uniform"))
model.add(Dense(1, activation="linear", 
kernel_initializer='random_uniform', name="output_tensor"))

1 Ответ

0 голосов
/ 08 февраля 2019

Если ваши входные данные на самом деле представляют собой 4 отдельных тензора, то вам следует использовать API Interpreter.runForMultipleInputsAndOutputs, который допускает несколько отдельных входных данных.Смотрите также этот пример из репозитория TensorFlow Lite.Например:

double[] input0 = {...};
double[] input1 = {...};
Object[] inputs = {input0, input1};
double[] output = new double[100];
Map<Integer, Object> outputs = new HashMap<>();
outputs.put(0, output);
interpreter.runForMultipleInputsOutputs(inputs, outputs);
...