Tensorflow: фиксированное квантование точек для встроенного DSP - PullRequest
0 голосов
/ 30 мая 2018

Извиняюсь за мой вопрос новичка.

Из подобных документов я понимаю преимущества использования 8-битных чисел для экономии памяти и повышения производительности при очень небольшом влиянии на точность:

https://www.tensorflow.org/performance/quantization

В других блогах упоминается, что эти квантованные модели могут быть выгружены в DSP, у меня есть недорогой DSP, который может делать 168 умножений с добавлением 9-битных входов за один такт при очень низком энергопотреблении, и я хотел быиспользуйте это, чтобы сделать вывод на некоторых моделях, которые я обучал.Я не хочу использовать какие-либо существующие фреймворки, так как они все равно не будут соответствовать цели.Я хотел бы просто обучить модель, сохранить ее, а затем самостоятельно прочитать веса, пока я буду жестко кодировать поток / график сети вручную, как доказательство концепции.

Когда я смотрю на нее какТолько для сжатия имеет смысл использовать min / max для слоя + 8-битные веса, что может привести к несимметричным диапазонам, а 0 не находится в середине 8-битного диапазона.Распаковать его в 32-битное реальное значение для выполнения вычислений можно легко.

Но все же в нескольких блогах упоминается, что этот подход можно использовать непосредственно в DSP и выполнять вычисления с 8-битными числами.Я до сих пор не могу понять, как это можно реализовать.Раньше у меня была математика с фиксированной точкой, где я делал вид, что где-то есть десятичная точка, а затем сдвигал результат после умножения.Но я думаю, что этого нельзя сделать, когда для обучения / хранения модели используется минимальный / максимальный / несимметричный подход.Я что-то упускаю, потому что не могу понять, как это можно реализовать на низком уровне с помощью простых целочисленных множителей в DSP?

...