  Spiking Neural Networks (SNNs) have attracted great attention due to their
distinctive characteristics of low power consumption and temporal information
processing. ANN-SNN conversion, as the most commonly used training method for
applying SNNs, can ensure that converted SNNs achieve comparable performance to
ANNs on large-scale datasets. However, the performance degrades severely under
low quantities of time-steps, which hampers the practical applications of SNNs
to neuromorphic chips. In this paper, instead of evaluating different
conversion errors and then eliminating these errors, we define an offset spike
to measure the degree of deviation between actual and desired SNN firing rates.
We perform a detailed analysis of offset spike and note that the firing of one
additional (or one less) spike is the main cause of conversion errors. Based on
this, we propose an optimization strategy based on shifting the initial
membrane potential and we theoretically prove the corresponding optimal
shifting distance for calibrating the spike. In addition, we also note that our
method has a unique iterative property that enables further reduction of
conversion errors. The experimental results show that our proposed method
achieves state-of-the-art performance on CIFAR-10, CIFAR-100, and ImageNet
datasets. For example, we reach a top-1 accuracy of 67.12% on ImageNet when
using 6 time-steps. To the best of our knowledge, this is the first time an
ANN-SNN conversion has been shown to simultaneously achieve high accuracy and
ultralow latency on complex datasets. Code is available at
https://github.com/hzc1208/ANN2SNN_COS.
