Tensorflow 模型输出权重具有不同的值
Tensorflow Model output weights have different values
我正在开发一个 Android 应用程序,它需要一个 ML 模型 integration.For 我正在使用 TensorFlow lite deployment.I 我正在使用基于自定义模型的 Siamese 网络进行输出和输出形状是 [1 128]。当我在 Google Colab 上推断 python 中的 tf lite 模型时,输出 [1128] 数字与我在 Android [=19 上生成的数字不同=] 输入图像在推论以及输入和输出形状上都是相同的,但我仍然在 Android Phone 和 Python TFlite model.I 上得到不同的输出向量Firebase 机器学习。
Android代码
val interpreter=Interpreter(model)
val imageBitmap= Bitmap.createScaledBitmap(BitmapFactory.decodeFileDescriptor(contentResolver.openFileDescriptor(fileUri,"r")?.fileDescriptor),256,256,true)
val inputImage=ByteBuffer.allocateDirect(256*256*3*4).order(ByteOrder.nativeOrder())
for(ycord in 0 until 256){
for(xcord in 0 until 256){
val pixel=imageBitmap.getPixel(xcord,ycord)
inputImage.putFloat(Color.red(pixel)/1.0f)
inputImage.putFloat(Color.green(pixel)/1.0f)
inputImage.putFloat(Color.blue(pixel)/1.0f)
}
}
imageBitmap.recycle()
val modelOutput=ByteBuffer.allocateDirect(outputSize).order(ByteOrder.nativeOrder())
interpreter.run(inputImage,modelOutput)
modelOutput.rewind()
val probs=modelOutput.asFloatBuffer()
success(ImageProcessResult.Success(probs))
请帮助me.I需要它soon.Any感谢帮助
您正在 Android 平台中将位图大小调整为 [256,256]。
即使是输入向量的最细微变化也会改变输出向量。当你调整位图大小时,你改变了输入向量。但是,如果模型足够通用,则输出向量(在分类中)的 argmax 的最终结果将是相同的。
就 Siamese 而言,如果模型没有过度拟合,我相信它不会以有意义的方式影响最终结果(相似性得分)。
我正在开发一个 Android 应用程序,它需要一个 ML 模型 integration.For 我正在使用 TensorFlow lite deployment.I 我正在使用基于自定义模型的 Siamese 网络进行输出和输出形状是 [1 128]。当我在 Google Colab 上推断 python 中的 tf lite 模型时,输出 [1128] 数字与我在 Android [=19 上生成的数字不同=] 输入图像在推论以及输入和输出形状上都是相同的,但我仍然在 Android Phone 和 Python TFlite model.I 上得到不同的输出向量Firebase 机器学习。
Android代码
val interpreter=Interpreter(model)
val imageBitmap= Bitmap.createScaledBitmap(BitmapFactory.decodeFileDescriptor(contentResolver.openFileDescriptor(fileUri,"r")?.fileDescriptor),256,256,true)
val inputImage=ByteBuffer.allocateDirect(256*256*3*4).order(ByteOrder.nativeOrder())
for(ycord in 0 until 256){
for(xcord in 0 until 256){
val pixel=imageBitmap.getPixel(xcord,ycord)
inputImage.putFloat(Color.red(pixel)/1.0f)
inputImage.putFloat(Color.green(pixel)/1.0f)
inputImage.putFloat(Color.blue(pixel)/1.0f)
}
}
imageBitmap.recycle()
val modelOutput=ByteBuffer.allocateDirect(outputSize).order(ByteOrder.nativeOrder())
interpreter.run(inputImage,modelOutput)
modelOutput.rewind()
val probs=modelOutput.asFloatBuffer()
success(ImageProcessResult.Success(probs))
请帮助me.I需要它soon.Any感谢帮助
您正在 Android 平台中将位图大小调整为 [256,256]。
即使是输入向量的最细微变化也会改变输出向量。当你调整位图大小时,你改变了输入向量。但是,如果模型足够通用,则输出向量(在分类中)的 argmax 的最终结果将是相同的。
就 Siamese 而言,如果模型没有过度拟合,我相信它不会以有意义的方式影响最终结果(相似性得分)。