3 # This script tests the basic behavior of record-minmax
7 # ./test_record_minmax.sh <path/to/test.config> <path/to/work_dir> <TEST 1> <TEST 2> ...
8 # test.config : set ${RECORD_MINMAX_PATH} and ${CIRCLE2CIRCLE_PATH}
9 # work_dir : build directory of quantization-value-test (ex: build/compiler/quantization-value-test)
11 SOURCE_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
12 GEN_SCRIPT_PATH="${SOURCE_PATH}/gen_h5_explicit_inputs.py"
13 COMPARE_SCRIPT_PATH="${SOURCE_PATH}/compare_tensors.py"
14 CONFIG_PATH="$1"; shift
15 BIN_PATH=$(dirname "${CONFIG_PATH}")
16 TEST_INPUT_PATH="${SOURCE_PATH}/test_inputs"
19 source "${CONFIG_PATH}"
21 echo "-- Found RECORD-MINMAX: ${RECORD_MINMAX_PATH}"
22 echo "-- Found CIRCLE_TENSORDUMP: ${CIRCLE_TENSORDUMP_PATH}"
23 echo "-- Found workdir: ${WORKDIR}"
30 while [ "$1" != "" ]; do
34 TESTCASE="${MODELNAME}.${GRANULARITY}.${DTYPE}"
36 TESTED+=("${TESTCASE}")
38 TESTCASE_FILE="${WORKDIR}/${TESTCASE}"
39 TEST_RESULT_FILE="${BIN_PATH}/${TESTCASE}"
41 PASSED_TAG="${TEST_RESULT_FILE}.record_minmax.passed"
44 cat > "${TEST_RESULT_FILE}_record_minmax.log" <(
48 # Generate h5 input data
49 source "${VIRTUALENV}/bin/activate"
50 "${VIRTUALENV}/bin/python" "${GEN_SCRIPT_PATH}" \
51 --model "${WORKDIR}/${MODELNAME}.tflite" \
52 --input "${TEST_INPUT_PATH}/${MODELNAME}/${GRANULARITY}/${DTYPE}" \
53 --output "${TESTCASE_FILE}.input.h5"
55 if [[ $? -ne 0 ]]; then
56 echo "FAILED TO GENERATE INPUT"
61 "${RECORD_MINMAX_PATH}" \
62 --input_model "${TEST_RESULT_FILE}.fake_quantized.circle" \
63 --input_data "${TESTCASE_FILE}.input.h5" \
64 --output_model "${TEST_RESULT_FILE}.minmax_recorded.circle"
66 # Dump min/max values (circle-tensordump)
67 "${CIRCLE_TENSORDUMP_PATH}" \
68 "${TEST_RESULT_FILE}.minmax_recorded.circle" \
69 --tensors_to_hdf5 "${TEST_RESULT_FILE}.minmax_recorded.circle.h5"
72 "${VIRTUALENV}/bin/python" "${COMPARE_SCRIPT_PATH}" \
73 --input_h5 "${TEST_RESULT_FILE}.minmax_recorded.circle.h5" \
74 --expect_dir "${SOURCE_PATH}/expected_outputs/${MODELNAME}/${GRANULARITY}/${DTYPE}/record_minmax" \
77 if [[ $? -eq 0 ]]; then
82 if [[ -f "${PASSED_TAG}" ]]; then
90 if [[ ${#TESTED[@]} -ne ${#PASSED[@]} ]]; then
92 for TEST in "${FAILED[@]}"