Tensorflow.js转换模型预测与冻结模型不同/不准确的结果

Tensorflow.js转换模型预测与冻结模型不同/不准确的结果,tensorflow,machine-learning,image-recognition,tensorflow.js,tensorflowjs-converter,Tensorflow,Machine Learning,Image Recognition,Tensorflow.js,Tensorflowjs Converter,当我将冻结的PB模型转换为tensorflow JS模型时,我失去了所有预测的准确性。有人能告诉我为什么我做错了什么吗 我已经做了以下工作-我已经用我自己的数据集对ImageNet模型进行了重新培训,如下所述: 例如,当我运行以下命令时,我可以获得冻结模型的准确结果: python3 -m scripts.label_image \ --graph=tf_files/retrained_graph.pb \ --image=/mnt/c//Users/Harry/Pictur

当我将冻结的PB模型转换为tensorflow JS模型时,我失去了所有预测的准确性。有人能告诉我为什么我做错了什么吗

我已经做了以下工作-我已经用我自己的数据集对ImageNet模型进行了重新培训,如下所述:

例如,当我运行以下命令时,我可以获得冻结模型的准确结果:

python3 -m scripts.label_image \
    --graph=tf_files/retrained_graph.pb  \
    --image=/mnt/c//Users/Harry/Pictures/220px-Afghane.jpg
它给出的以下输出是即时的:

afghan hound (score=0.98313)
briard (score=0.00433)
lhasa (score=0.00401)
sussex spaniel (score=0.00346)
otterhound (score=0.00116)
我已使用Tensorflow JS转换器通过以下命令将冻结的模型转换为Tensorflow JS:

tensorflowjs_converter \
    --input_format=tf_frozen_model \
    --output_node_names='final_result' \
    'C:/Code/tensorflow-for-poets-2/tf_files/retrained_graph.pb' \
    'C:/tensorflow output 2'
当我使用与冻结模型相同的图像对tensorflow JS模型进行预测时,我得到了可怕的结果:

加载模式:

const MODEL_URL = 'assets/dog-model/tensorflowjs_model.pb';
const WEIGHTS_URL = 'assets/dog-model/weights_manifest.json';
loadFrozenModel(MODEL_URL, WEIGHTS_URL).then(
  result => (this.model = result) 
);
预测结果:

const image = tf.browser
  .fromPixels(this.staticImage.nativeElement)
  .resizeNearestNeighbor([224, 224])
  .toFloat()
  .sub(meanImageNetRGB)
  .expandDims();
console.log(image);

const prediction = this.model.predict(image);
输出:

yorkshire terrier: 0.2447875738143921
komondor: 0.22793063521385193
ibizan hound: 0.0579879954457283
saluki: 0.04560968279838562
maltese dog: 0.04430125281214714

误差与模型的输入有关。
确保操作-
裁剪
重塑
。。。用于在两个版本(python和js)中创建表示图像的张量是相似的。

能否验证输入是否与在python版本中看到的完全相同?也许打印出一些值来检查?你能展示一下你是如何在python中创建张量输入的吗?