在Android中运行tensorflow模型

在Android中运行tensorflow模型,android,tensorflow,Android,Tensorflow,我正在尝试在Android应用程序中运行一个简单的虹膜分类器。我在keras中创建了一个MLP,将其转换为.pb格式,并将其放入一个assets文件夹中。keras模型: data = sklearn.datasets.load_iris() x=data.data y=data.target x=np.array(x) y=np.array(y) x_train, x_test, y_train, y_test= train_test_split(x, y, test_size = 0.

我正在尝试在Android应用程序中运行一个简单的虹膜分类器。我在keras中创建了一个MLP,将其转换为.pb格式,并将其放入一个assets文件夹中。keras模型:

data = sklearn.datasets.load_iris()
x=data.data
y=data.target
x=np.array(x)
y=np.array(y)



x_train, x_test, y_train, y_test= train_test_split(x, y, test_size = 0.25)


inputs=Input(shape=(4,))
x=Dense(10,activation="relu",name="input_layer")(inputs)
x=Dense(10,activation="relu")(x)
x=Dense(15,activation="relu")(x)
x=Dense(3,activation="softmax",name="output_layer")(x)

model=Model(inputs,x)

sgd = SGD(lr=0.05, momentum=0.9, decay=0.0001, nesterov=False)

model.compile(optimizer=sgd, loss="sparse_categorical_crossentropy",  metrics=["accuracy"])
model.fit(x_train,y_train,batch_size=20, epochs=100, verbose=0)
AndroidStudio中的代码(我有4个输入数字字段、1个输出字段和1个按钮。单击按钮时调用predictClick方法):

构建运行时没有错误,但当我点击predict按钮时,应用程序将崩溃。当我离开队伍的时候

tfinterface.feed(input_name,inputs,4,1);
tfinterface.run(new String[]{output_name});
tfinterface.fetch(output_name,result);

我们的应用程序运行正常,所以我认为这就是错误的来源

模型的输入层在python代码中命名为“输入层”,但在Java代码中命名为“输入数据”


同时检查您的logcat输出。您应该会收到一条错误消息,说明模型没有您正在搜索的输入层。

请从LogCat中查找并包含与该崩溃相关的异常。记住,你的代码不是在“Android Studio”中运行的。这只是一个构建代码的文本编辑器。该代码在实际的Android设备上运行
tfinterface.feed(input_name,inputs,4,1);
tfinterface.run(new String[]{output_name});
tfinterface.fetch(output_name,result);