{'fraction_non_alphanumeric': 0.019896193771626297, 'fraction_numerical': 0.004325259515570935, 'mean_word_length': 5.536723163841808, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Neural network number systems

Three fundamental representation schemes for numbers in a digital neural network are explored: the fixed-point number, the floating-point number, and the exponential number. These three numeric representation schemes are analyzed with emphasis on the memory efficiency, precision, and dynamic-range tradeoffs associated with each when used to compute neural network vector dot products. Specifically, the authors explore a small image-processing problem, an 8×8-pixel image with 256 shades of resolution, to investigate the effects of using these various number formats on the total required memory in a neural network. It is concluded that, by carefully matching number formats to the precision and dynamic-range requirements of each layer in a neural network, one can optimize the memory utilization for the particular class of problem involved. Because it is impractical to design and build hardware for each particular problem to be solved with a neural network, the authors emphasize the importance of building neural network hardware which can handle heterogeneous number formats, dynamically programmable from software