我将.pb文件转换为.tflite文件时遇到问题

时间:2019-07-30 13:25:45

标签: tensorflow-lite

我在将.pb文件转换为.tflite文件时遇到问题。

我使用以下命令;

尝试使用以下命令和--inference_type=FLOAT

使用其他选项
        tflite_convert 
        --graph_def_file=frozen_inference_graph.pb 
        --output_file=new_graph.tflite 
        --input_format=TENSORFLOW_GRAPHDEF 
        --output_format=TFLITE 
        --input_shape=1,600,600,3 
        --input_array=image_tensor 
        --output_array=detection_boxes,detection_scores,detection_classes,num_detections 
        --inference_type=QUANTIZED_UINT8 
        --inference_input_type=QUANTIZED_UINT8

我收到错误声明;

  

ValueError:当inference_input_type为QUANTIZED_UINT8时,必须定义std_dev和mean。如果您遇到相同的问题,请提供帮助。谢谢。

2 个答案:

答案 0 :(得分:0)

如果您使用量化值进行推断,则需要定义标准差和训练数据的平均值,因为它以以下方式用于在浮点和int8之间进行映射。

if( isset( $_POST['delete'], $_POST['id'] ) {
    ob_clean();
    $id=$_POST['id'];

    $query = 'DELETE FROM `users` WHERE id = :id';
    $statement = $connect->prepare( $query );
    $result = $statement->execute( array( ':id' => $id ) );

    if( $result && $statement->rowCount() > 0 ){
        echo '<div class="alert alert-fill-danger" role="alert">User Deleted!<div>';
    }
    exit();
}

这是在TFLiteConverter documentation

中定义的

答案 1 :(得分:0)

您可以在进行转换时启用std_dev和mean标志。像这样:

tflite_convert 
        --graph_def_file=frozen_inference_graph.pb 
        --output_file=new_graph.tflite 
        --input_format=TENSORFLOW_GRAPHDEF 
        --output_format=TFLITE 
        --input_shape=1,600,600,3 
        --input_array=image_tensor 
        --output_array=detection_boxes,detection_scores,detection_classes,num_detections 
        --inference_type=QUANTIZED_UINT8 
        --inference_input_type=QUANTIZED_UINT8
        --mean_values=128 \
        --std_dev_values=127

希望有所帮助。