WO2020164162A1 - Systems and methods for fixed-point conversion - Google Patents

Systems and methods for fixed-point conversion Download PDF

Info

Publication number
WO2020164162A1
WO2020164162A1 PCT/CN2019/075428 CN2019075428W WO2020164162A1 WO 2020164162 A1 WO2020164162 A1 WO 2020164162A1 CN 2019075428 W CN2019075428 W CN 2019075428W WO 2020164162 A1 WO2020164162 A1 WO 2020164162A1
Authority
WO
WIPO (PCT)
Prior art keywords
cluster
value
target
sample values
floating
Prior art date
Application number
PCT/CN2019/075428
Other languages
French (fr)
Inventor
Yuan Zhao
Haifeng Shen
Original Assignee
Beijing Didi Infinity Technology And Development Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Didi Infinity Technology And Development Co., Ltd. filed Critical Beijing Didi Infinity Technology And Development Co., Ltd.
Publication of WO2020164162A1 publication Critical patent/WO2020164162A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/24Conversion to or from floating-point codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound

Definitions

  • the present disclosure generally relates to machine learning, and in particular, to systems and methods for implementing machine learning network using embedded processors.
  • a machine learning network is a type of computational model that can be used to solve tasks that are difficult to solve using traditional computational models. For example, a machine learning network can be trained to perform pattern recognition tasks that would be extremely difficult to implement using other traditional programming paradigms. Utilizing a machine learning network often requires performing calculations and operations to develop, train, and update the machine learning network.
  • machine learning networks have been implemented using processors of desktop computers or servers that operate using floating point numbers. For example, 32-bit floating point numbers encoded in the standard IEEE 754 format are utilized to represent data and perform calculations of a machine learning network.
  • a system for converting a floating-point value to a fixed-point value may include at least one storage medium storing a set of instructions, and at least one processor in communication with the at least one storage medium.
  • the at least one processor executes the set of instructions, the at least one processor is directed to: obtain a training sample set, wherein the training sample set includes a plurality of sample values; divide the plurality of sample values into a plurality of reference clusters based on the sample values; for each of the plurality of reference clusters, determine one or more conversion parameters corresponding to a reference cluster based on the one or more sample values within the reference cluster; obtain a target value in a floating-point format; determine a target cluster among the plurality of reference clusters based on the target value; convert the target value in the floating-point format into a fixed-point format based on the one or more conversion parameters corresponding to the target cluster.
  • the one or more conversion parameters may include a Q number.
  • the system may be further directed to: determine a cluster center value corresponding to the reference cluster; determine a maximum range value corresponding to the reference cluster based on the cluster center value corresponding to the reference cluster and the sample values with the reference cluster; determine the Q number corresponding to the reference cluster based on the maximum range value corresponding to the reference cluster.
  • the one or more conversion parameters may include a displacement value
  • the system may be further directed to: determine an original center value of a plurality of sample values of the training sample set; determine a cluster center value corresponding to the reference cluster; determine the displacement value corresponding to the reference cluster; based on the original center value and the cluster center value corresponding to the reference cluster.
  • the target value in the floating-point format may include a target cluster encoding area
  • the system is further configured to: determine a distribution of the plurality of sample values; determine a length of the target cluster encoding area based on the distribution of the plurality of sample values.
  • system may be further configured to: determine a number of the reference cluster based on length of the target cluster encoding area; determine the plurality of reference clusters based on the number of the reference cluster.
  • system may be further configured to: determine a first result in the fixed-pointing format based on the target value in the fixed-pointing format and a machine learning network; convert the first result to the floating-point format based on the on the one or more conversion parameters corresponding to the target cluster.
  • the machine learning network may be determined based on the training sample set.
  • system is further configured to: determine a look-up table based on the conversion parameters corresponding to the plurality of reference clusters.
  • the look-up table may be a hash table.
  • the system may be further configured to: obtain the one or more conversion parameters corresponding to the target cluster from the look-up table.
  • a method may include one or more of the following operations performed by at least one processor.
  • the method may include: obtaining a training sample set, wherein the training sample set includes a plurality of sample values; dividing the plurality of sample values into a plurality of reference clusters based on the sample values; for each of the plurality of reference clusters, determining one or more conversion parameters corresponding to a reference cluster based on the one or more sample values within the reference cluster; obtaining a target value in a floating-point format; determining a target cluster among the plurality of reference clusters based on the target value; converting the target value in the floating-point format into a fixed-point format based on the one or more conversion parameters corresponding to the target cluster.
  • a non-transitory computer readable medium may include at least one set of instructions for converting a floating-point value to a fixed-point value. Wherein when executed by at least one processor, the at least one set of instructions may cause the at least one processor to perform a method.
  • the method may include: obtaining a training sample set, wherein the training sample set includes a plurality of sample values; dividing the plurality of sample values into a plurality of reference clusters based on the sample values; for each of the plurality of reference clusters, determining one or more conversion parameters corresponding to a reference cluster based on the one or more sample values within the reference cluster; obtaining a target value in a floating-point format; determining a target cluster among the plurality of reference clusters based on the target value; converting the target value in the floating-point format into a fixed-point format based on the one or more conversion parameters corresponding to the target cluster.
  • FIG. 1 is a schematic diagram illustrating an exemplary system for converting floating-point values to fixed-points values according to some embodiments of the present disclosure
  • FIG. 2 is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary computing device according to some embodiments of the present disclosure
  • FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary mobile device according to some embodiments of the present disclosure
  • FIG. 4 is a block diagram illustrating an exemplary processing engine according to some embodiments of the present disclosure
  • FIG. 5 is a flowchart of an exemplary process and/or method for converting floating-point values to fixed-points values according to some embodiments of the present disclosure
  • FIG. 6 is a flowchart of an exemplary process and/or method for determining one or more conversion parameters according to some embodiments of the present disclosure.
  • FIG. 7 is a schematic diagram illustrating an exemplary reference clusters according to some embodiments of the present disclosure.
  • a training sample set is, wherein the training sample set includes a plurality of sample values; the plurality of sample values are divided into a plurality of reference clusters based on the sample values; for each of the plurality of reference clusters, a Q number and a displacement value are determined corresponding to a reference cluster based on the one or more sample values within the reference cluster; a target value in a floating-point format is obtained; a target cluster is determined among the plurality of reference clusters based on the target value; the target value in the floating-point format is converted into a fixed-point format based on the one or more conversion parameters corresponding to the target cluster.
  • different Q numbers are determined for different data, which improves the range and accurate for convert floating-point values to fixed points values.
  • the flowcharts used in the present disclosure illustrate operations that systems implement according to some embodiments of the present disclosure. It is to be expressly understood, the operations of the flowcharts may be implemented not in order. Conversely, the operations may be implemented in inverted order or simultaneously. Moreover, one or more other operations may be added to the flowcharts. One or more operations may be removed from the flowcharts.
  • FIG. 1 is a schematic diagram illustrating an exemplary system for convert floating-point values to fixed points values according to some embodiments of the present disclosure.
  • the system 100 may include a server 110, a network 120, a terminal 130, and a database 140.
  • the server 110 may include a processing engine 112.
  • the server 110 may be configured to process information and/or data relating to a plurality of service requests, for example, the server 110 may be configured to converting floating-point values to fixed points values. In some embodiments, the server 110 may be configured to generate a data table and store the data table in the database 140. In some embodiments, the server 110 may determine one or more training samples in the database 140 to generate a training sample set based on a query request. In some embodiments, the server 110 may be a single server or a server group. The server group may be centralized, or distributed (e.g., the server 110 may be a distributed system) . In some embodiments, the server 110 may be local or remote.
  • the server 110 may access information and/or data stored in the terminal 130 and/or the database 140 via the network 120. As another example, the server 110 may be directly connected to the terminal 130 and/or the database 140 to access stored information and/or data.
  • the server 110 may be implemented on a cloud platform.
  • the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.
  • the server 110 may be implemented on a computing device having one or more components illustrated in FIG. 2 in the present disclosure.
  • the server 110 may include a processing engine 112.
  • the processing engine 112 may process information and/or data relating to a service request (converting floating-point values to fixed points values) to perform one or more functions described in the present disclosure.
  • the processing engine 112 may include one or more processing engines (e.g., single-core processing engine (s) or multi-core processor (s) ) .
  • the processing engine 112 may include a central processing unit (CPU) , an application-specific integrated circuit (ASIC) , an application-specific instruction-set processor (ASIP) , a graphics processing unit (GPU) , a physics processing unit (PPU) , a digital signal processor (DSP) , a field programmable gate array (FPGA) , a programmable logic device (PLD) , a controller, a microcontroller unit, a reduced instruction-set computer (RISC) , a microprocessor, or the like, or any combination thereof.
  • CPU central processing unit
  • ASIC application-specific integrated circuit
  • ASIP application-specific instruction-set processor
  • GPU graphics processing unit
  • PPU physics processing unit
  • DSP digital signal processor
  • FPGA field programmable gate array
  • PLD programmable logic device
  • controller a microcontroller unit, a reduced instruction-set computer (RISC) , a microprocessor, or the like, or any combination thereof.
  • RISC reduced
  • the terminal 130 may refer to a user that may be an individual, a tool, or other entity directly relating to the service request.
  • a user may send a query request to load a machine learning model on the terminal 130.
  • the server 110 may generate data tables by collecting data transmitted by the terminal 130.
  • the terminal 130 may include a passenger terminal and/or a driver terminal.
  • the terminal 130 may include a mobile device 130-1, a tablet computer 130-2, a laptop computer 130-3, and a built-in device 130-4 in a motor vehicle, or the like, or any combination thereof.
  • the mobile device 130-1 may include a smart home device, a wearable device, a smart mobile device, a virtual reality device, an augmented reality device, or the like, or any combination thereof.
  • the smart home device may include a smart lighting device, a control device of an intelligent electrical apparatus, a smart monitoring device, a smart television, a smart video camera, an interphone, or the like, or any combination thereof.
  • the wearable device may include a smart bracelet, a smart footgear, a smart glass, a smart helmet, a smart watch, a smart clothing, a smart backpack, a smart accessory, or the like, or any combination thereof.
  • the smart mobile device may include a smartphone, a personal digital assistance (PDA) , a gaming device, a navigation device, a point of sale (POS) device, or the like, or any combination thereof.
  • the virtual reality device and/or the augmented reality device may include a virtual reality helmet, a virtual reality glass, a virtual reality patch, an augmented reality helmet, an augmented reality glass, an augmented reality patch, or the like, or any combination thereof.
  • the virtual reality device and/or the augmented reality device may include a Google Glass TM , an Oculus Rift TM , a HoloLens TM , a Gear VR TM , etc.
  • the built-in device in the motor vehicle 130-4 may include an onboard computer, an onboard television, etc.
  • the network 120 may facilitate exchange of information and/or data.
  • one or more components in the system 100 e.g., the server 110, the terminal 130, or the database 140
  • the server 110 may obtain/acquire a service request (e.g., a converting floating-point values to fixed points values request) from the terminal 130 via the network 120.
  • the network 120 may be any type of wired or wireless network, or combination thereof.
  • the network 120 may include a cable network, a wireline network, an optical fiber network, a tele communications network, an intranet, an Internet, a local area network (LAN) , a wide area network (WAN) , a wireless local area network (WLAN) , a metropolitan area network (MAN) , a public telephone switched network (PSTN) , a Bluetooth TM network, a ZigBee TM network, a near field communication (NFC) network, a global system for mobile communications (GSM) network, a code-division multiple access (CDMA) network, a time-division multiple access (TDMA) network, a general packet radio service (GPRS) network, an enhanced data rate for GSM evolution (EDGE) network, a wideband code division multiple access (WCDMA) network, a high speed downlink packet access (HSDPA) network, a long term evolution (LTE) network, a user datagram protocol (UDP) network, a transmission control protocol/Internet protocol (
  • the network 120 may include one or more network access points.
  • the network 120 may include wired or wireless network access points such as base stations and/or internet exchange points 120-1, 120-2, ..., through which one or more components of the system 100 may be connected to the network 120 to exchange data and/or information.
  • the database 140 may store data and/or instructions. In some embodiments, the database 140 may store data obtained/acquired from the terminal 130. In some embodiments, the database 140 may store different models that executed or used by the server 110 to perform exemplary methods described in the present disclosure. In some embodiments, the database 140 may store different data tables. In some embodiments, the database 140 may include a mass storage, a removable storage, a volatile read-and-write memory, a read-only memory (ROM) , or the like, or any combination thereof. Exemplary mass storage may include a magnetic disk, an optical disk, a solid-state drive, etc. Exemplary removable storage may include a flash drive, a floppy disk, an optical disk, a memory card, a zip disk, a magnetic tape, etc.
  • Exemplary volatile read-and-write memory may include a random access memory (RAM) .
  • RAM may include a dynamic RAM (DRAM) , a double date rate synchronous dynamic RAM (DDR SDRAM) , a static RAM (SRAM) , a thyristor RAM (T-RAM) , and a zero-capacitor RAM (Z-RAM) , etc.
  • Exemplary ROM may include a mask ROM (MROM) , a programmable ROM (PROM) , an erasable programmable ROM (EPROM) , an electrically erasable programmable ROM (EEPROM) , a compact disk ROM (CD-ROM) , and a digital versatile disk ROM, etc.
  • MROM mask ROM
  • PROM programmable ROM
  • EPROM erasable programmable ROM
  • EEPROM electrically erasable programmable ROM
  • CD-ROM compact disk ROM
  • digital versatile disk ROM etc.
  • the database 140 may be implemented on a cloud platform.
  • the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.
  • the database 140 may be connected to the network 120 to communicate with one or more components in the system 100 (e.g., the server 110, the terminal 130) .
  • One or more components in the system 100 may access the data or instructions stored in the database 140 via the network 120.
  • the database 140 may be directly connected to or communicate with one or more components in the system 100 (e.g., the server 110, the terminal 130) .
  • the database 140 may be part of the server 110.
  • FIG. 2 is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary computing device according to some embodiments of the present disclosure.
  • the server 110, the terminal 130, and/or the database 140 may be implemented on the computing device 200 according to some embodiments of the present disclosure.
  • the particular system may use a functional block diagram to explain the hardware platform containing one or more user interfaces.
  • the computer may be a computer with general or specific functions. Both types of the computers may be configured to implement any particular system according to some embodiments of the present disclosure.
  • the computing device 200 may be configured to implement any component that may perform one or more functions disclosed in the present disclosure.
  • the computing device 200 may be used to implement any component of the system 100 as described herein. Only one such computer device is shown purely for convenience purposes.
  • One of ordinary skill in the art would understand at the time of filing of this application that the computer functions relating to the service as described herein may be implemented in a distributed fashion on a number of similar platforms, to distribute the processing load.
  • the computing device 200 may include COM ports 250 connected to and from a network connected thereto to facilitate data communications.
  • the computing device 200 may also include a processor (e.g., the processor 220) , in the form of one or more processors (e.g., logic circuits) , for executing program instructions.
  • the processor 220 may include interface circuits and processing circuits therein.
  • the interface circuits may be configured to receive electronic signals from a bus 210, wherein the electronic signals encode structured data and/or instructions for the processing circuits to process.
  • the processing circuits may conduct logic calculations, and then determine a conclusion, a result, and/or an instruction encoded as electronic signals. Then the interface circuits may send out the electronic signals from the processing circuits via the bus 210.
  • the computing device 200 may further include program storage and data storage of different forms including, for example, a disk 270, and a read-only memory (ROM) 230, or a random access memory (RAM) 240, for various data files to be processed and/or transmitted by the computing device.
  • the exemplary computing device may also include program instructions stored in the ROM 230, RAM 240, and/or other type of non-transitory storage medium to be executed by the processor 220.
  • the methods and/or processes of the present disclosure may be implemented as the program instructions.
  • the computing device 200 also includes an I/O component 260, supporting input/output between the computer and other components.
  • the computing device 200 may also receive programming and data via network communications.
  • FIG. 2 Merely for illustration, only one CPU and/or processor is illustrated in FIG. 2. Multiple CPUs and/or processors are also contemplated; thus, operations and/or method steps performed by one CPU and/or processor as described in the present disclosure may also be jointly or separately performed by the multiple CPUs and/or processors.
  • the CPU and/or processor of the computing device 200 executes both step A and step B, it should be understood that step A and step B may also be performed by two different CPUs and/or processors jointly or separately in the computing device 200 (e.g., the first processor executes step A and the second processor executes step B, or the first and second processors jointly execute steps A and B) .
  • FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary mobile device according to some embodiments of the present disclosure.
  • the terminal 130 may be implemented on the mobile device 300 according to some embodiments of the present disclosure.
  • the mobile device 300 may include a communication module 310, a display 320, a graphics processing unit (GPU) 330, a central processing unit (CPU) 340, an I/O 350, a memory 360, and a storage 390.
  • the CPU 340 may include interface circuits and processing circuits similar to the processor 220.
  • any other suitable component including but not limited to a system bus or a controller (not shown) , may also be included in the mobile device 300.
  • a mobile operating system 370 e.g., iOS TM , Android TM , Windows Phone TM
  • the applications 380 may include a browser or any other suitable mobile apps for receiving and rending information relating to a service request (e.g., a request for loading and updating a machine learning model) from the system 100.
  • User interaction with the information stream may be achieved via the I/O 350 and provided to the processing engine 112 and/or other components of the system 100 via the network 120.
  • a computer hardware platform may be used as hardware platforms of one or more elements (e.g., a component of the server 110 described in FIG. 1) . Since these hardware elements, operating systems, and program languages are common, it may be assumed that persons skilled in the art may be familiar with these techniques and they may be able to provide information required in the database query service according to the techniques described in the present disclosure.
  • a computer with user interface may be used as a personal computer (PC) , or other types of workstations or terminal devices. After being properly programmed, a computer with user interface may be used as a server. It may be considered that those skilled in the art may also be familiar with such structures, programs, or general operations of this type of computer device. Thus, extra explanations are not described for the figures.
  • FIG. 4 is a block diagram illustrating an exemplary processor according to some embodiments of the present disclosure.
  • the processing engine 112 may include an obtaining module 401, a clustering module 402, a conversion parameter determination module 403, a target cluster determination 404, and a converting module 405.
  • the obtaining module 401 may obtain a training sample set.
  • the training sample set may include a plurality of sample values.
  • the training sample set may include a plurality of training samples.
  • the training sample may be configured to generate or update the machine learning network.
  • the machine learning network may be a convolutional neural network (CNN) , a deep belief network (DBN) , Stacked Auto-Encoders (SAE) , a logistic regression (LR) model, a support vector machine (SVM) , a decision tree model, a Naive Bayesian Model, a random forest model, a Restricted Boltzmann Machine (RBM) , a Q-learning Model, or the like, or a combination thereof.
  • CNN convolutional neural network
  • DNN deep belief network
  • SAE Stacked Auto-Encoders
  • LR logistic regression
  • SVM support vector machine
  • decision tree model a Naive Bayesian Model
  • random forest model a Restricted Boltzmann Machine (RBM
  • a trained model may be generated by training a preliminary model based on the historical data.
  • a training sample may include one or more sample values.
  • the training sample set is an image set including a plurality of images
  • the training sample may be an image in the image set
  • the one or more sample values of the training sample may be pixel values of pixels in the image.
  • the plurality of sample values may have a range.
  • the range of the one or more sample values may be predetermined. For example, if the training sample is a three channels 256-color image, the one or more sample values (i.e., pixel value for each channel) may be within [0, 255] .
  • the range of the one or more sample values may be determined based on a statistical approach.
  • the obtaining module 401 may obtain a target value in the floating-point format.
  • the target value may need to be processed via the machine learning network. Since it is computationally expensive to perform floating point calculations and operations on embedded processors (e.g., processors of mobile devices. ) , the target value stored in a floating-point format may need to convert to a fixed-point format value for machine learning network processing.
  • the clustering module 402 may divide the plurality of sample values into a plurality of reference clusters.
  • the clustering module 402 may divide the plurality of sample values into a plurality of reference clusters based on the plurality of sample values.
  • the clustering module 402 may divide sample values which are similar to each other into a same reference cluster. For example, for a training sample set having the sample values as ⁇ 1, 1.1, 2.5, 3, 7, 8, 9 ⁇ , the clustering module 402 may divide the sample values “1” , “1.1” , “2.5” , and “3” into a reference cluster, and divide the sample values “7” , “8” and “9” into another reference cluster.
  • an amount of the reference clusters may be predetermined and the processing engine 112 may divide the plurality of sample values into a plurality of reference clusters based on the predetermined amount. Detailed description related to the predetermined amount of the reference clusters may be found in Operation 505 and the description thereof. In some embodiments, the processing engine 112 may added numbers to the plurality of reference clusters. For example, if four reference clusters are generated in Operation 502, the clustering module 402 may assign the four reference clusters as “cluster 1, ” “cluster 2, ” “cluster 3, ” and “cluster 4” respectively.
  • the plurality of reference clusters may be determined a clustering technique.
  • Exemplary clustering techniques may include connectivity-based clustering technique, centroid-based clustering, density-based clustering, and distribution-based clustering, or the like, or any combination thereof.
  • the conversion parameter determination module 403 may determine one or more conversion parameters corresponding to a reference cluster based on the one or more sample values within the reference cluster.
  • the one or more conversion parameters may be related to a conversion between the floating-point value and the fixed-point value.
  • a sample value with fraction part, which is a decimal value may be stored in a floating-point format. Since it is computationally expensive to perform floating point calculations and operations on embedded processors (e.g., processors of mobile devices. ) , a floating-point value may need to convert to a fixed-point format value for processing.
  • the one or more conversion parameters may be related to a conversion between the fixed-point format and the floating-point format.
  • the one or more conversion parameters may include a Q number, and the floating-point value may convert to a fix-point value based on the Q number.
  • the one or more conversion parameters may include a displacement value. A displacement error of a fixed-point value converted by a floating-point value may be corrected based on the displacement value.
  • the conversion parameter determination module 403 may generate a look-up table (e.g., a hash table) based on the one or more conversion parameters of the plurality of reference clusters which the number of the reference cluster, assigned in Operation 502, may be considered as an index.
  • a look-up table e.g., a hash table
  • the conversion parameter determination module 403 may determine an original center value of a plurality of sample values of the training sample set.
  • the original center value of the plurality of sample values may be predetermined, for example, the original center may be zero.
  • the original center value of the plurality of sample values may be related to a mean value of the plurality of the sample values.
  • the original center value of the plurality of sample values may be related to a median value of the plurality of the sample values.
  • the conversion parameter determination module 403 may determine a cluster center value corresponding to the reference cluster.
  • the cluster center value corresponding to the reference cluster may be related to a mean value of the sample values within the reference cluster. In some embodiment, the cluster center value corresponding to the reference cluster may be related to a median value of the sample values within the reference cluster.
  • the conversion parameter determination module 403 may determine a maximum range value corresponding to the reference cluster based on the cluster center value corresponding to the reference cluster and the sample values with the reference cluster.
  • the processing engine 112 may determine a maximum difference between the cluster center value and the sample values within the reference cluster as the maximum range value.
  • the conversion parameter determination module 403 may determine a Q number corresponding to the reference cluster based on the maximum range value corresponding to the reference cluster. As shown in Table 1, the Q number is related to the range of a decimal value in the floating-point format. For example, if the maximum range value of a reference cluster is 7, the processing engine 112 may determine 12 as the Q number of the reference cluster.
  • the conversion parameter determination module 403 may determine a displacement value corresponding to the reference cluster based on the original center value and the cluster center value corresponding to the reference cluster.
  • the processing engine 112 may determine the displacement value corresponding to the reference cluster based on a difference between the original center value and the cluster center value corresponding to the reference cluster.
  • the target cluster determination 404 may determine a target cluster among the plurality of reference clusters based on the target value. In some embodiments, the target cluster determination 404 may determine the target cluster based on a distance between the target value and a center of the reference cluster. The target cluster determination 404 may determine the reference cluster with the shortest distance between the target value as the target cluster.
  • the target value in the floating-point format may include a target cluster encoding area.
  • the target cluster encoding area may include one or more bits for encoding the number of the target cluster.
  • the amount of the reference mentioned in Operation 502 may be determined based on a length of the target cluster encoding area. For example, if the length of the target cluster encoding area is 2 bits, the maximum amount of the reference cluster is 4 (i.e., 2 2 ) . If the cluster 3 is determined as the target cluster, the target cluster encoding area may include the bits “10” to represent the target cluster of the target value is cluster 3.
  • the processing engine 112 may determine the length of the target cluster encoding area based on a distribution of the sample values.
  • the converting module 405 may convert the target value in the floating-point format into the fixed-point format based on the one or more conversion parameters corresponding to the target cluster.
  • the converting module 405 may convert the target value in the floating-point format into the fixed-point format based the Q number corresponding to the target cluster and the displacement value corresponding to the target cluster.
  • the converting module 405 may determine the one or more conversion parameters corresponding to the target cluster by searching the look-up table. After the target value in the floating-point format is converted into the fixed-point format based on the one or more conversion parameters corresponding to the target cluster, the target value may be used in the machine learning network. A first result in the fixed-pointing format may be determined based on the machine learning network and the target value.
  • the first result in the fixed-pointing format may be converted into the floating-point format based on the one or more conversion parameters corresponding to the target cluster.
  • the machine learning network may be generated or updated based on the training sample set.
  • the machine learning network may be a convolutional neural network (CNN) , a deep belief network (DBN) , Stacked Auto-Encoders (SAE) , a logistic regression (LR) model, a support vector machine (SVM) , a decision tree model, a Naive Bayesian Model, a random forest model, a Restricted Boltzmann Machine (RBM) , a Q-learning Model, or the like, or a combination thereof.
  • CNN convolutional neural network
  • DBN deep belief network
  • SAE Stacked Auto-Encoders
  • LR logistic regression
  • SVM support vector machine
  • decision tree model a Naive Bayesian Model
  • random forest model a Restricted Boltzmann Machine (RBM)
  • RBM Restricted Bolt
  • the processing engine 112 may further include a storage module (not shown in FIG. 4) .
  • the storage module may be configured to store data generated during any process performed by any component of the processing engine 112.
  • each of components of the processing engine 112 may associate with a storage module. Additionally or alternatively, the components of the processing engine 112 may share a common storage module. Similar modifications should fall within the scope of the present disclosure.
  • FIG. 5 is a flowchart illustrating an exemplary process for converting a floating-point value into a fixed-point value according to some embodiments of the present disclosure.
  • the process 500 may be executed by the system 100.
  • the process 500 may be implemented as a set of instructions (e.g., an application) stored in a storage device (e.g., the ROM 230 or the RAM 240) and invoked and/or executed by the processing engine 112 (e.g., the processor 220 of the computing device 200 illustrated in FIG. 2 and/or the modules and/or units illustrated in FIG. 4) .
  • the processing engine 112 may execute the set of instructions and, when executing the instructions, it may be configured to perform the process 500.
  • An actual value in decimal format may be stored and processed in floating-point format or in a fixed-point format in a processor. Since it is computationally expensive to perform floating point calculations and operations on embedded processors (e.g., processors of mobile devices. ) , a floating-point value may need to convert to a fixed-point value for processing. In some embodiments, to convert a floating-point value in a fixed-point format, an amount of fraction bit may need to be specified. For example, Q format numbers are notionally fixed-point numbers to represent a floating-point value by using a Q number to specify the amount of the fraction bit. The conversion between a floating-point value and a fixed-point value may be determined by the following equation:
  • x i denotes a fixed-point value for an actual value (e.g., a decimal format value)
  • x f denotes a floating-point value for the same actual value
  • Q denotes the Q number.
  • the range and accuracy of a decimal format value represented by the Q format number may depend on the Q number.
  • the Q number is lower, Table 1 shown below is an exemplary table representing a relationship between the Q number and the range of decimal value of the actual value according to some embodiments of the present disclosure.
  • the decimal range of the actual value may be [-1, 0.9999695] .
  • the decimal range of the actual value may be [-32, 31.9990234] , compared with the case when Q number is 10, the range of the actual value is wider, but the accuracy of the actual value is lower (since the value of a decimal part when the Q number is 10 is lower than a value of a fraction part when the Q number is 15) .
  • a massive data may be used to generate or update a machine learning network. The range and accuracy demand for the massive data may be different. Thus, it is necessary to determine different Q numbers for different range and accuracy demands of the massive data.
  • processing engine 112 may obtain a training sample set.
  • the training sample set may include a plurality of sample values.
  • the training sample set may include a plurality of training samples.
  • the training sample may be configured to generate or update the machine learning network.
  • the machine learning network may be a convolutional neural network (CNN) , a deep belief network (DBN) , Stacked Auto-Encoders (SAE) , a logistic regression (LR) model, a support vector machine (SVM) , a decision tree model, a Naive Bayesian Model, a random forest model, a Restricted Boltzmann Machine (RBM) , a Q-learning Model, or the like, or a combination thereof.
  • a trained model may be generated by training a preliminary model based on the historical data
  • a training sample may include one or more sample values.
  • the training sample set is an image set including a plurality of images
  • the training sample may be an image in the image set
  • the one or more sample values of the training sample may be pixel values of pixels in the image.
  • the plurality of sample values may have a range.
  • the range of the one or more sample values may be predetermined. For example, if the training sample is a three channels 256-color image, the one or more sample values (i.e., pixel value for each channel) may be within [0, 255] .
  • the range of the one or more sample values may be determined based on a statistical approach.
  • the processing engine 112 may divide the plurality of sample values into a plurality of reference clusters.
  • the processing engine 112 may divide the plurality of sample values into a plurality of reference clusters based on the plurality of sample values.
  • the processing engine 112 may divide sample values which are similar to each other into a same reference cluster. For example, for a training sample set having the sample values as ⁇ 1, 1.1, 2.5, 3, 7, 8, 9 ⁇ , the processing engine 112 may divide the sample values “1” , “1.1” , “2.5” , and “3” into a reference cluster, and divide the sample values “7” , “8” and “9” into another reference cluster.
  • an amount of the reference clusters may be predetermined and the processing engine 112 may divide the plurality of sample values into a plurality of reference clusters based on the predetermined amount. Detailed description related to the predetermined amount of the reference clusters may be found in Operation 505 and the description thereof. In some embodiments, the processing engine 112 may added numbers to the plurality of reference clusters. For example, if four reference clusters are generated in Operation 502, the processing engine 112 may assign the four reference clusters as “cluster 1, ” “cluster 2, ” “cluster 3, ” and “cluster 4” respectively.
  • the plurality of reference clusters may be determined a clustering technique.
  • Exemplary clustering techniques may include connectivity-based clustering technique, centroid-based clustering, density-based clustering, and distribution-based clustering, or the like, or any combination thereof.
  • processing engine 112 may determine one or more conversion parameters corresponding to a reference cluster based on the one or more sample values within the reference cluster.
  • the one or more conversion parameters may be related to a conversion between the floating-point value and the fixed-point value.
  • a sample value with fraction part, which is a decimal value may be stored in a floating-point format. Since it is computationally expensive to perform floating point calculations and operations on embedded processors (e.g., processors of mobile devices. ) , a floating-point value may need to convert to a fixed-point format value for processing.
  • the one or more conversion parameters may be related to a conversion between the fixed-point format and the floating-point format.
  • the one or more conversion parameters may include a Q number, and the floating-point value may convert to a fix-point value based on the Q number.
  • the one or more conversion parameters may include a displacement value. A displacement error of a fixed-point value converted by a floating-point value may be corrected based on the displacement value.
  • FIG. 7 is a diagram illustrating exemplary reference clusters according to some embodiments of the present disclosure. As shown in FIG. 7, the dots on the axis represent the plurality of sample values. A plurality of sample values are divided into a reference cluster 701 and a reference cluster 702.
  • the Q number of the reference cluster 702 (e.g., 15) is higher than the Q number of the reference cluster 701 (e.g., 13) .
  • the maximum value can be represented is 1.
  • the displacement error may exist between the actual sample value and the fixed-point value representing the sample value in the reference cluster 702. Detailed description related to the determination of the Q number and the displacement error may be found in FIG. 6 and the description thereof.
  • the processing engine 112 may generate a look-up table (e.g., a hash table) based on the one or more conversion parameters of the plurality of reference clusters which the number of the reference cluster, assigned in Operation 502, may be considered as an index.
  • a look-up table e.g., a hash table
  • the processing engine 112 may obtain a target value in the floating-point format.
  • the target value may need to be processed via the machine learning network. Since it is computationally expensive to perform floating point calculations and operations on embedded processors (e.g., processors of mobile devices. ) , the target value stored in a floating-point format may need to convert to a fixed-point format value for machine learning network processing.
  • the processing engine 112 may determine a target cluster among the plurality of reference clusters based on the target value. In some embodiments, the processing engine 112 may determine the target cluster based on a distance between the target value and a center of the reference cluster. The processing engine 112 may determine the reference cluster with the shortest distance between the target value as the target cluster.
  • the target value in the floating-point format may include a target cluster encoding area.
  • the target cluster encoding area may include one or more bits for encoding the number of the target cluster.
  • the amount of the reference mentioned in Operation 502 may be determined based on a length of the target cluster encoding area. For example, if the length of the target cluster encoding area is 2 bits, the maximum amount of the reference cluster is 4 (i.e., 2 2 ) . If the cluster 3 is determined as the target cluster, the target cluster encoding area may include the bits “10” to represent the target cluster of the target value is cluster 3.
  • the processing engine 112 may determine the length of the target cluster encoding area based on a distribution of the sample values.
  • the processing engine 112 may convert the target value in the floating-point format into the fixed-point format based on the one or more conversion parameters corresponding to the target cluster.
  • the processing engine 112 may convert the target value in the floating-point format into the fixed-point format based the Q number corresponding to the target cluster and the displacement value corresponding to the target cluster.
  • the processing engine 112 may determine the one or more conversion parameters corresponding to the target cluster by searching the look-up table. After the target value in the floating-point format is converted into the fixed-point format based on the one or more conversion parameters corresponding to the target cluster, the target value may be used in the machine learning network. A first result in the fixed-pointing format may be determined based on the machine learning network and the target value.
  • the first result in the fixed-pointing format may be converted into the floating-point format based on the one or more conversion parameters corresponding to the target cluster.
  • the machine learning network may be generated or updated based on the training sample set.
  • the machine learning network may be a convolutional neural network (CNN) , a deep belief network (DBN) , Stacked Auto-Encoders (SAE) , a logistic regression (LR) model, a support vector machine (SVM) , a decision tree model, a Naive Bayesian Model, a random forest model, a Restricted Boltzmann Machine (RBM) , a Q-learning Model, or the like, or a combination thereof.
  • CNN convolutional neural network
  • DBN deep belief network
  • SAE Stacked Auto-Encoders
  • LR logistic regression
  • SVM support vector machine
  • decision tree model a Naive Bayesian Model
  • random forest model a Restricted Boltzmann Machine (RBM)
  • RBM Restricted Bolt
  • FIG. 6 is a flowchart illustrating an exemplary process for determining one or more conversion parameters according to some embodiments of the present disclosure.
  • the process 600 may be executed by the system 100.
  • the process 600 may be implemented as a set of instructions (e.g., an application) stored in a storage device (e.g., the ROM 230 or the RAM 240) , and invoked and/or executed by the processing engine 112 (e.g., the processor 220 of the computing device 200 illustrated in FIG. 2 and/or the modules and/or units illustrated in FIG. 4) .
  • the processing engine 112 may execute the set of instructions and, when executing the instructions, it may be configured to perform the process 600.
  • the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 600 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 6 and described below is not intended to be limiting.
  • the processing engine 112 may determine an original center value of a plurality of sample values of the training sample set.
  • the original center value of the plurality of sample values may be predetermined, for example, the original center may be zero.
  • the original center value of the plurality of sample values may be related to a mean value of the plurality of the sample values.
  • the original center value of the plurality of sample values may be related to a median value of the plurality of the sample values.
  • the processing engine 112 may determine a cluster center value corresponding to the reference cluster.
  • the cluster center value corresponding to the reference cluster may be related to a mean value of the sample values within the reference cluster. In some embodiment, the cluster center value corresponding to the reference cluster may be related to a median value of the sample values within the reference cluster.
  • the processing engine 112 may determine a maximum range value corresponding to the reference cluster based on the cluster center value corresponding to the reference cluster and the sample values with the reference cluster.
  • the processing engine 112 may determine a maximum difference between the cluster center value and the sample values within the reference cluster as the maximum range value.
  • the processing engine 112 may determine a Q number corresponding to the reference cluster based on the maximum range value corresponding to the reference cluster. As shown in Table 1, the Q number is related to the range of a decimal value in the floating-point format. For example, if the maximum range value of a reference cluster is 7, the processing engine 112 may determine 12 as the Q number of the reference cluster.
  • the processing engine 112 may determine a displacement value corresponding to the reference cluster based on the original center value and the cluster center value corresponding to the reference cluster.
  • the processing engine 112 may determine the displacement value corresponding to the reference cluster based on a difference between the original center value and the cluster center value corresponding to the reference cluster.
  • computer hardware platforms may be used as the hardware platform (s) for one or more of the elements described herein.
  • a computer with user interface elements may be used to implement a personal computer (PC) or any other type of work station or terminal device.
  • PC personal computer
  • a computer may also act as a server if appropriately programmed.
  • aspects of the present disclosure may be illustrated and described herein in any of a number of patentable classes or context including any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof. Accordingly, aspects of the present disclosure may be implemented entirely hardware, entirely software (including firmware, resident software, micro-code, etc. ) or combining software and hardware implementation that may all generally be referred to herein as a “unit, ” “module, ” or “system. ” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer-readable media having computer readable program code embodied thereon.
  • a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including electromagnetic, optical, or the like, or any suitable combination thereof.
  • a computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that may communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
  • Program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including wireless, wireline, optical fiber cable, RF, or the like, or any suitable combination of the foregoing.
  • Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB. NET, Python or the like, conventional procedural programming languages, such as the "C" programming language, Visual Basic, Fortran 2003, Perl, COBOL 2002, PHP, ABAP, dynamic programming languages such as Python, Ruby and Groovy, or other programming languages.
  • the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN) , or the connection may be made to an external computer (e.g., through the Internet using an Internet Service Provider) or in a cloud computing environment or offered as a service such as a Software as a Service (SaaS) .
  • LAN local area network
  • WAN wide area network
  • SaaS Software as a Service

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The present disclosure is related to systems and methods for converting a floating-point value to a fixed-point value. The method may include obtaining a training sample set, wherein the training sample set includes a plurality of sample values; dividing the plurality of sample values into a plurality of reference clusters based on the sample values; for each of the plurality of reference clusters, determining one or more conversion parameters corresponding to a reference cluster based on the one or more sample values within the reference cluster; obtaining a target value in a floating-point format; determining a target cluster among the plurality of reference clusters based on the target value; converting the target value in the floating-point format into a fixed-point format based on the one or more conversion parameters corresponding to the target cluster.

Description

SYSTEMS AND METHODS FOR FIXED-POINT CONVERSION
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims priority to Chinese Patent Application No. 201910115155.2, filed on February 14, 2019, the contents of which are incorporated herein by reference.
TECHNICAL FIELD
The present disclosure generally relates to machine learning, and in particular, to systems and methods for implementing machine learning network using embedded processors.
BACKGROUND
A machine learning network is a type of computational model that can be used to solve tasks that are difficult to solve using traditional computational models. For example, a machine learning network can be trained to perform pattern recognition tasks that would be extremely difficult to implement using other traditional programming paradigms. Utilizing a machine learning network often requires performing calculations and operations to develop, train, and update the machine learning network. Traditionally, machine learning networks have been implemented using processors of desktop computers or servers that operate using floating point numbers. For example, 32-bit floating point numbers encoded in the standard IEEE 754 format are utilized to represent data and perform calculations of a machine learning network.
However, it is hard to perform floating point calculations and operations on embedded processors (e.g., processors of mobile devices. ) It is desirable to improve the efficiency for implementing the machine learning networks using embedded processors that operate using fixed point numbers. Additionally, as larger and more complex machine learning networks are implemented, it is desirable to reduce their computational complexity to improve speed, power requirements, and other inefficiencies.
SUMMARY
According to an aspect of the present disclosure, a system for converting a floating-point value to a fixed-point value may include at least one storage medium storing a set of instructions, and at least one processor in communication with the at least one storage medium. When executing the set of instructions, the at least one processor is directed to: obtain a training sample set, wherein the training sample set includes a plurality of sample values; divide the plurality of sample values into a plurality of reference clusters based on the sample values; for each of the plurality of reference clusters, determine one or more conversion parameters corresponding to a reference cluster based on the one or more sample values within the reference cluster; obtain a target value in a floating-point format; determine a target cluster among the plurality of reference clusters based on the target value; convert the target value in the floating-point format into a fixed-point format based on the one or more conversion parameters corresponding to the target cluster.
In some embodiments, the one or more conversion parameters may include a Q number. To determine the Q number corresponding to the reference cluster, the system may be further directed to: determine a cluster center value corresponding to the reference cluster; determine a maximum range value corresponding to the reference cluster based on the cluster center value corresponding to the reference cluster and the sample values with the reference cluster; determine the Q number corresponding to the reference cluster based on the maximum range value corresponding to the reference cluster.
In some embodiments, the one or more conversion parameters may include a displacement value, and to determine the displacement value displacement value corresponding to the reference cluster, the system may be further directed to: determine an original center value of a plurality of sample values of the training sample set; determine a cluster center value corresponding to the reference cluster; determine the displacement value corresponding to the reference cluster; based on the original center value and the cluster center value corresponding to the reference cluster.
In some embodiments, the target value in the floating-point format may include a target cluster encoding area, and the system is further configured to: determine a distribution of the plurality of sample values; determine a length of the target cluster encoding area based on the distribution of the plurality of sample values.
In some embodiments, the system may be further configured to: determine a number of the reference cluster based on length of the target cluster encoding area; determine the plurality of reference clusters based on the number of the reference cluster.
In some embodiments, the system may be further configured to: determine a first result in the fixed-pointing format based on the target value in the fixed-pointing format and a machine learning network; convert the first result to the floating-point format based on the on the one or more conversion parameters corresponding to the target cluster.
In some embodiments, the machine learning network may be determined based on the training sample set.
In some embodiments, the system is further configured to: determine a look-up table based on the conversion parameters corresponding to the plurality of reference clusters.
In some embodiments the look-up table may be a hash table.
In some embodiments, to convert the target value in the floating-point format into a fixed-point format based on the one or more conversion parameters corresponding to the target cluster, the system may be further configured to: obtain the one or more conversion parameters corresponding to the target cluster from the look-up table.
According to another aspect of the present disclosure, a method may include one or more of the following operations performed by at least one processor. The method may include: obtaining a training sample set, wherein the training sample set includes a plurality of sample values; dividing the plurality of sample values into a  plurality of reference clusters based on the sample values; for each of the plurality of reference clusters, determining one or more conversion parameters corresponding to a reference cluster based on the one or more sample values within the reference cluster; obtaining a target value in a floating-point format; determining a target cluster among the plurality of reference clusters based on the target value; converting the target value in the floating-point format into a fixed-point format based on the one or more conversion parameters corresponding to the target cluster.
According to still another aspect of the present disclosure, a non-transitory computer readable medium may include at least one set of instructions for converting a floating-point value to a fixed-point value. Wherein when executed by at least one processor, the at least one set of instructions may cause the at least one processor to perform a method. The method may include: obtaining a training sample set, wherein the training sample set includes a plurality of sample values; dividing the plurality of sample values into a plurality of reference clusters based on the sample values; for each of the plurality of reference clusters, determining one or more conversion parameters corresponding to a reference cluster based on the one or more sample values within the reference cluster; obtaining a target value in a floating-point format; determining a target cluster among the plurality of reference clusters based on the target value; converting the target value in the floating-point format into a fixed-point format based on the one or more conversion parameters corresponding to the target cluster.
Additional features will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following and the accompanying drawings or may be learned by production or operation of the examples. The features of the present disclosure may be realized and attained by practice or use of various aspects of the methodologies, instrumentalities and combinations set forth in the detailed examples discussed below.
BRIEF DESCRIPTION OF THE DRAWINGS
The present disclosure is further described in terms of exemplary embodiments. The foregoing and other aspects of embodiments of present disclosure are made more evident in the following detail description, when read in conjunction with the attached drawing figures.
FIG. 1 is a schematic diagram illustrating an exemplary system for converting floating-point values to fixed-points values according to some embodiments of the present disclosure;
FIG. 2 is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary computing device according to some embodiments of the present disclosure;
FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary mobile device according to some embodiments of the present disclosure;
FIG. 4 is a block diagram illustrating an exemplary processing engine according to some embodiments of the present disclosure;
FIG. 5 is a flowchart of an exemplary process and/or method for converting floating-point values to fixed-points values according to some embodiments of the present disclosure;
FIG. 6 is a flowchart of an exemplary process and/or method for determining one or more conversion parameters according to some embodiments of the present disclosure; and
FIG. 7 is a schematic diagram illustrating an exemplary reference clusters according to some embodiments of the present disclosure.
DETAILED DESCRIPTION
The following description is presented to enable any person skilled in the art to make and use the present disclosure, and is provided in the context of a particular  application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present disclosure. Thus, the present disclosure is not limited to the embodiments shown, but is to be accorded the widest scope consistent with the claims.
The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting. As used herein, the singular forms “a, ” “an, ” and “the” may be intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises, ” “comprising, ” “includes, ” and/or “including” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
An aspect of the present disclosure relates to convert floating-point values to fixed points values. According to some embodiments of the present disclosure, a training sample set is, wherein the training sample set includes a plurality of sample values; the plurality of sample values are divided into a plurality of reference clusters based on the sample values; for each of the plurality of reference clusters, a Q number and a displacement value are determined corresponding to a reference cluster based on the one or more sample values within the reference cluster; a target value in a floating-point format is obtained; a target cluster is determined among the plurality of reference clusters based on the target value; the target value in the floating-point format is converted into a fixed-point format based on the one or more conversion parameters corresponding to the target cluster. With the method of the present disclosure, different Q numbers are determined for different data, which improves the range and accurate for convert floating-point values to fixed points values.
These and other features, and characteristics of the present disclosure, as well as the methods of operations and functions of the related elements of structure and the combination of parts and economies of manufacture, may become more apparent upon consideration of the following description with reference to the accompanying drawing (s) , all of which form a part of this specification. It is to be expressly understood, however, that the drawing (s) are for the purpose of illustration and description only and are not intended to limit the scope of the present disclosure. It is understood that the drawings are not to scale.
The flowcharts used in the present disclosure illustrate operations that systems implement according to some embodiments of the present disclosure. It is to be expressly understood, the operations of the flowcharts may be implemented not in order. Conversely, the operations may be implemented in inverted order or simultaneously. Moreover, one or more other operations may be added to the flowcharts. One or more operations may be removed from the flowcharts.
FIG. 1 is a schematic diagram illustrating an exemplary system for convert floating-point values to fixed points values according to some embodiments of the present disclosure. The system 100 may include a server 110, a network 120, a terminal 130, and a database 140. The server 110 may include a processing engine 112.
The server 110 may be configured to process information and/or data relating to a plurality of service requests, for example, the server 110 may be configured to converting floating-point values to fixed points values. In some embodiments, the server 110 may be configured to generate a data table and store the data table in the database 140. In some embodiments, the server 110 may determine one or more training samples in the database 140 to generate a training sample set based on a query request. In some embodiments, the server 110 may be a single server or a server group. The server group may be centralized, or distributed (e.g., the server 110 may be a distributed system) . In some embodiments, the server 110 may be local or remote. For example, the server 110  may access information and/or data stored in the terminal 130 and/or the database 140 via the network 120. As another example, the server 110 may be directly connected to the terminal 130 and/or the database 140 to access stored information and/or data. In some embodiments, the server 110 may be implemented on a cloud platform. Merely by way of example, the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof. In some embodiments, the server 110 may be implemented on a computing device having one or more components illustrated in FIG. 2 in the present disclosure.
In some embodiments, the server 110 may include a processing engine 112. The processing engine 112 may process information and/or data relating to a service request (converting floating-point values to fixed points values) to perform one or more functions described in the present disclosure. In some embodiments, the processing engine 112 may include one or more processing engines (e.g., single-core processing engine (s) or multi-core processor (s) ) . Merely by way of example, the processing engine 112 may include a central processing unit (CPU) , an application-specific integrated circuit (ASIC) , an application-specific instruction-set processor (ASIP) , a graphics processing unit (GPU) , a physics processing unit (PPU) , a digital signal processor (DSP) , a field programmable gate array (FPGA) , a programmable logic device (PLD) , a controller, a microcontroller unit, a reduced instruction-set computer (RISC) , a microprocessor, or the like, or any combination thereof.
The terminal 130 may refer to a user that may be an individual, a tool, or other entity directly relating to the service request. In some embodiments, a user may send a query request to load a machine learning model on the terminal 130. In some embodiments, the server 110 may generate data tables by collecting data transmitted by the terminal 130. In some embodiments, the terminal 130 may include a passenger terminal and/or a driver terminal. In some embodiments, the terminal 130 may include a mobile device 130-1, a tablet computer 130-2, a laptop  computer 130-3, and a built-in device 130-4 in a motor vehicle, or the like, or any combination thereof. In some embodiments, the mobile device 130-1 may include a smart home device, a wearable device, a smart mobile device, a virtual reality device, an augmented reality device, or the like, or any combination thereof. In some embodiments, the smart home device may include a smart lighting device, a control device of an intelligent electrical apparatus, a smart monitoring device, a smart television, a smart video camera, an interphone, or the like, or any combination thereof. In some embodiments, the wearable device may include a smart bracelet, a smart footgear, a smart glass, a smart helmet, a smart watch, a smart clothing, a smart backpack, a smart accessory, or the like, or any combination thereof. In some embodiments, the smart mobile device may include a smartphone, a personal digital assistance (PDA) , a gaming device, a navigation device, a point of sale (POS) device, or the like, or any combination thereof. In some embodiments, the virtual reality device and/or the augmented reality device may include a virtual reality helmet, a virtual reality glass, a virtual reality patch, an augmented reality helmet, an augmented reality glass, an augmented reality patch, or the like, or any combination thereof. For example, the virtual reality device and/or the augmented reality device may include a Google Glass TM, an Oculus Rift TM, a HoloLens TM, a Gear VR TM, etc. In some embodiments, the built-in device in the motor vehicle 130-4 may include an onboard computer, an onboard television, etc.
The network 120 may facilitate exchange of information and/or data. In some embodiments, one or more components in the system 100 (e.g., the server 110, the terminal 130, or the database 140) may send and/or receive information and/or data to/from other component (s) in the system 100 via the network 120. For example, the server 110 may obtain/acquire a service request (e.g., a converting floating-point values to fixed points values request) from the terminal 130 via the network 120. In some embodiments, the network 120 may be any type of wired or wireless network, or combination thereof. Merely by way of example, the network  120 may include a cable network, a wireline network, an optical fiber network, a tele communications network, an intranet, an Internet, a local area network (LAN) , a wide area network (WAN) , a wireless local area network (WLAN) , a metropolitan area network (MAN) , a public telephone switched network (PSTN) , a Bluetooth TM network, a ZigBee TM network, a near field communication (NFC) network, a global system for mobile communications (GSM) network, a code-division multiple access (CDMA) network, a time-division multiple access (TDMA) network, a general packet radio service (GPRS) network, an enhanced data rate for GSM evolution (EDGE) network, a wideband code division multiple access (WCDMA) network, a high speed downlink packet access (HSDPA) network, a long term evolution (LTE) network, a user datagram protocol (UDP) network, a transmission control protocol/Internet protocol (TCP/IP) network, a short message service (SMS) network, a wireless application protocol (WAP) network, a ultra wide band (UWB) network, an infrared ray, or the like, or any combination thereof. In some embodiments, the network 120 may include one or more network access points. For example, the network 120 may include wired or wireless network access points such as base stations and/or internet exchange points 120-1, 120-2, …, through which one or more components of the system 100 may be connected to the network 120 to exchange data and/or information.
The database 140 may store data and/or instructions. In some embodiments, the database 140 may store data obtained/acquired from the terminal 130. In some embodiments, the database 140 may store different models that executed or used by the server 110 to perform exemplary methods described in the present disclosure. In some embodiments, the database 140 may store different data tables. In some embodiments, the database 140 may include a mass storage, a removable storage, a volatile read-and-write memory, a read-only memory (ROM) , or the like, or any combination thereof. Exemplary mass storage may include a magnetic disk, an optical disk, a solid-state drive, etc. Exemplary removable storage may include a flash drive, a floppy disk, an optical disk, a memory card, a zip  disk, a magnetic tape, etc. Exemplary volatile read-and-write memory may include a random access memory (RAM) . Exemplary RAM may include a dynamic RAM (DRAM) , a double date rate synchronous dynamic RAM (DDR SDRAM) , a static RAM (SRAM) , a thyristor RAM (T-RAM) , and a zero-capacitor RAM (Z-RAM) , etc. Exemplary ROM may include a mask ROM (MROM) , a programmable ROM (PROM) , an erasable programmable ROM (EPROM) , an electrically erasable programmable ROM (EEPROM) , a compact disk ROM (CD-ROM) , and a digital versatile disk ROM, etc. In some embodiments, the database 140 may be implemented on a cloud platform. Merely by way of example, the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.
In some embodiments, the database 140 may be connected to the network 120 to communicate with one or more components in the system 100 (e.g., the server 110, the terminal 130) . One or more components in the system 100 may access the data or instructions stored in the database 140 via the network 120. In some embodiments, the database 140 may be directly connected to or communicate with one or more components in the system 100 (e.g., the server 110, the terminal 130) . In some embodiments, the database 140 may be part of the server 110.
FIG. 2 is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary computing device according to some embodiments of the present disclosure. The server 110, the terminal 130, and/or the database 140 may be implemented on the computing device 200 according to some embodiments of the present disclosure. The particular system may use a functional block diagram to explain the hardware platform containing one or more user interfaces. The computer may be a computer with general or specific functions. Both types of the computers may be configured to implement any particular system according to some embodiments of the present disclosure. The computing device 200 may be configured to implement any component that may  perform one or more functions disclosed in the present disclosure. For example, the computing device 200 may be used to implement any component of the system 100 as described herein. Only one such computer device is shown purely for convenience purposes. One of ordinary skill in the art would understand at the time of filing of this application that the computer functions relating to the service as described herein may be implemented in a distributed fashion on a number of similar platforms, to distribute the processing load.
The computing device 200, for example, may include COM ports 250 connected to and from a network connected thereto to facilitate data communications. The computing device 200 may also include a processor (e.g., the processor 220) , in the form of one or more processors (e.g., logic circuits) , for executing program instructions. For example, the processor 220 may include interface circuits and processing circuits therein. The interface circuits may be configured to receive electronic signals from a bus 210, wherein the electronic signals encode structured data and/or instructions for the processing circuits to process. The processing circuits may conduct logic calculations, and then determine a conclusion, a result, and/or an instruction encoded as electronic signals. Then the interface circuits may send out the electronic signals from the processing circuits via the bus 210.
The computing device 200 may further include program storage and data storage of different forms including, for example, a disk 270, and a read-only memory (ROM) 230, or a random access memory (RAM) 240, for various data files to be processed and/or transmitted by the computing device. The exemplary computing device may also include program instructions stored in the ROM 230, RAM 240, and/or other type of non-transitory storage medium to be executed by the processor 220. The methods and/or processes of the present disclosure may be implemented as the program instructions. The computing device 200 also includes an I/O component 260, supporting input/output between the computer and other components. The computing device 200 may also receive programming and data  via network communications.
Merely for illustration, only one CPU and/or processor is illustrated in FIG. 2. Multiple CPUs and/or processors are also contemplated; thus, operations and/or method steps performed by one CPU and/or processor as described in the present disclosure may also be jointly or separately performed by the multiple CPUs and/or processors. For example, if in the present disclosure the CPU and/or processor of the computing device 200 executes both step A and step B, it should be understood that step A and step B may also be performed by two different CPUs and/or processors jointly or separately in the computing device 200 (e.g., the first processor executes step A and the second processor executes step B, or the first and second processors jointly execute steps A and B) .
FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary mobile device according to some embodiments of the present disclosure. The terminal 130 may be implemented on the mobile device 300 according to some embodiments of the present disclosure. As illustrated in FIG. 3, the mobile device 300 may include a communication module 310, a display 320, a graphics processing unit (GPU) 330, a central processing unit (CPU) 340, an I/O 350, a memory 360, and a storage 390. The CPU 340 may include interface circuits and processing circuits similar to the processor 220. In some embodiments, any other suitable component, including but not limited to a system bus or a controller (not shown) , may also be included in the mobile device 300.
In some embodiments, a mobile operating system 370 (e.g., iOS TM, Android TM, Windows Phone TM) and one or more applications 380 may be loaded into the memory 360 from the storage 390 in order to be executed by the CPU 340. The applications 380 may include a browser or any other suitable mobile apps for receiving and rending information relating to a service request (e.g., a request for loading and updating a machine learning model) from the system 100. User interaction with the information stream may be achieved via the I/O 350 and provided  to the processing engine 112 and/or other components of the system 100 via the network 120.
In order to implement various modules, units, and their functions described above, a computer hardware platform may be used as hardware platforms of one or more elements (e.g., a component of the server 110 described in FIG. 1) . Since these hardware elements, operating systems, and program languages are common, it may be assumed that persons skilled in the art may be familiar with these techniques and they may be able to provide information required in the database query service according to the techniques described in the present disclosure. A computer with user interface may be used as a personal computer (PC) , or other types of workstations or terminal devices. After being properly programmed, a computer with user interface may be used as a server. It may be considered that those skilled in the art may also be familiar with such structures, programs, or general operations of this type of computer device. Thus, extra explanations are not described for the figures.
FIG. 4 is a block diagram illustrating an exemplary processor according to some embodiments of the present disclosure. The processing engine 112 may include an obtaining module 401, a clustering module 402, a conversion parameter determination module 403, a target cluster determination 404, and a converting module 405.
The obtaining module 401 may obtain a training sample set. The training sample set may include a plurality of sample values. The training sample set may include a plurality of training samples. In some embodiments, the training sample may be configured to generate or update the machine learning network. The machine learning network may be a convolutional neural network (CNN) , a deep belief network (DBN) , Stacked Auto-Encoders (SAE) , a logistic regression (LR) model, a support vector machine (SVM) , a decision tree model, a Naive Bayesian Model, a random forest model, a Restricted Boltzmann Machine (RBM) , a Q-learning Model, or the like, or a combination thereof. In some embodiments, a trained model  may be generated by training a preliminary model based on the historical data. A training sample may include one or more sample values. For example, if the training sample set is an image set including a plurality of images, the training sample may be an image in the image set, and the one or more sample values of the training sample may be pixel values of pixels in the image. The plurality of sample values may have a range. In some embodiments, the range of the one or more sample values may be predetermined. For example, if the training sample is a three channels 256-color image, the one or more sample values (i.e., pixel value for each channel) may be within [0, 255] . In some embodiments, the range of the one or more sample values may be determined based on a statistical approach.
The obtaining module 401 may obtain a target value in the floating-point format. The target value may need to be processed via the machine learning network. Since it is computationally expensive to perform floating point calculations and operations on embedded processors (e.g., processors of mobile devices. ) , the target value stored in a floating-point format may need to convert to a fixed-point format value for machine learning network processing.
The clustering module 402 may divide the plurality of sample values into a plurality of reference clusters. The clustering module 402 may divide the plurality of sample values into a plurality of reference clusters based on the plurality of sample values. The clustering module 402 may divide sample values which are similar to each other into a same reference cluster. For example, for a training sample set having the sample values as {1, 1.1, 2.5, 3, 7, 8, 9} , the clustering module 402 may divide the sample values “1” , “1.1” , “2.5” , and “3” into a reference cluster, and divide the sample values “7” , “8” and “9” into another reference cluster. In some embodiments, an amount of the reference clusters may be predetermined and the processing engine 112 may divide the plurality of sample values into a plurality of reference clusters based on the predetermined amount. Detailed description related to the predetermined amount of the reference clusters may be found in Operation 505 and the description thereof. In some embodiments, the processing  engine 112 may added numbers to the plurality of reference clusters. For example, if four reference clusters are generated in Operation 502, the clustering module 402 may assign the four reference clusters as “cluster 1, ” “cluster 2, ” “cluster 3, ” and “cluster 4” respectively.
Merely by way of illustration, the plurality of reference clusters may be determined a clustering technique. Exemplary clustering techniques may include connectivity-based clustering technique, centroid-based clustering, density-based clustering, and distribution-based clustering, or the like, or any combination thereof.
The conversion parameter determination module 403 may determine one or more conversion parameters corresponding to a reference cluster based on the one or more sample values within the reference cluster. The one or more conversion parameters may be related to a conversion between the floating-point value and the fixed-point value. A sample value with fraction part, which is a decimal value, may be stored in a floating-point format. Since it is computationally expensive to perform floating point calculations and operations on embedded processors (e.g., processors of mobile devices. ) , a floating-point value may need to convert to a fixed-point format value for processing. The one or more conversion parameters may be related to a conversion between the fixed-point format and the floating-point format. In some embodiments, the one or more conversion parameters may include a Q number, and the floating-point value may convert to a fix-point value based on the Q number. In some embodiments, the one or more conversion parameters may include a displacement value. A displacement error of a fixed-point value converted by a floating-point value may be corrected based on the displacement value.
The conversion parameter determination module 403 may generate a look-up table (e.g., a hash table) based on the one or more conversion parameters of the plurality of reference clusters which the number of the reference cluster, assigned in Operation 502, may be considered as an index.
The conversion parameter determination module 403 may determine an original center value of a plurality of sample values of the training sample set. In  some embodiments, the original center value of the plurality of sample values may be predetermined, for example, the original center may be zero. In some embodiments, the original center value of the plurality of sample values may be related to a mean value of the plurality of the sample values. In some embodiment, the original center value of the plurality of sample values may be related to a median value of the plurality of the sample values.
The conversion parameter determination module 403 may determine a cluster center value corresponding to the reference cluster. In some embodiments, the cluster center value corresponding to the reference cluster may be related to a mean value of the sample values within the reference cluster. In some embodiment, the cluster center value corresponding to the reference cluster may be related to a median value of the sample values within the reference cluster.
The conversion parameter determination module 403 may determine a maximum range value corresponding to the reference cluster based on the cluster center value corresponding to the reference cluster and the sample values with the reference cluster. The processing engine 112 may determine a maximum difference between the cluster center value and the sample values within the reference cluster as the maximum range value.
The conversion parameter determination module 403 may determine a Q number corresponding to the reference cluster based on the maximum range value corresponding to the reference cluster. As shown in Table 1, the Q number is related to the range of a decimal value in the floating-point format. For example, if the maximum range value of a reference cluster is 7, the processing engine 112 may determine 12 as the Q number of the reference cluster.
The conversion parameter determination module 403 may determine a displacement value corresponding to the reference cluster based on the original center value and the cluster center value corresponding to the reference cluster. The processing engine 112 may determine the displacement value corresponding to the reference cluster based on a difference between the original center value and the  cluster center value corresponding to the reference cluster.
The target cluster determination 404 may determine a target cluster among the plurality of reference clusters based on the target value. In some embodiments, the target cluster determination 404 may determine the target cluster based on a distance between the target value and a center of the reference cluster. The target cluster determination 404 may determine the reference cluster with the shortest distance between the target value as the target cluster.
In some embodiments, the target value in the floating-point format may include a target cluster encoding area. The target cluster encoding area may include one or more bits for encoding the number of the target cluster. The amount of the reference mentioned in Operation 502, may be determined based on a length of the target cluster encoding area. For example, if the length of the target cluster encoding area is 2 bits, the maximum amount of the reference cluster is 4 (i.e., 2 2) . If the cluster 3 is determined as the target cluster, the target cluster encoding area may include the bits “10” to represent the target cluster of the target value is cluster 3. The processing engine 112 may determine the length of the target cluster encoding area based on a distribution of the sample values.
The converting module 405 may convert the target value in the floating-point format into the fixed-point format based on the one or more conversion parameters corresponding to the target cluster. The converting module 405 may convert the target value in the floating-point format into the fixed-point format based the Q number corresponding to the target cluster and the displacement value corresponding to the target cluster. In some embodiments, the converting module 405 may determine the one or more conversion parameters corresponding to the target cluster by searching the look-up table. After the target value in the floating-point format is converted into the fixed-point format based on the one or more conversion parameters corresponding to the target cluster, the target value may be used in the machine learning network. A first result in the fixed-pointing format may be determined based on the machine learning network and the target value. In  some embodiments, the first result in the fixed-pointing format may be converted into the floating-point format based on the one or more conversion parameters corresponding to the target cluster. In some embodiments, the machine learning network may be generated or updated based on the training sample set. The machine learning network may be a convolutional neural network (CNN) , a deep belief network (DBN) , Stacked Auto-Encoders (SAE) , a logistic regression (LR) model, a support vector machine (SVM) , a decision tree model, a Naive Bayesian Model, a random forest model, a Restricted Boltzmann Machine (RBM) , a Q-learning Model, or the like, or a combination thereof.
It should be noted that the descriptions above in relation to the processing engine 112 are provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, various variations and modifications may be conducted under the guidance of the present disclosure. However, those variations and modifications do not depart the scope of the present disclosure. For example, the processing engine 112 may further include a storage module (not shown in FIG. 4) . The storage module may be configured to store data generated during any process performed by any component of the processing engine 112. As another example, each of components of the processing engine 112 may associate with a storage module. Additionally or alternatively, the components of the processing engine 112 may share a common storage module. Similar modifications should fall within the scope of the present disclosure.
FIG. 5 is a flowchart illustrating an exemplary process for converting a floating-point value into a fixed-point value according to some embodiments of the present disclosure. The process 500 may be executed by the system 100. For example, the process 500 may be implemented as a set of instructions (e.g., an application) stored in a storage device (e.g., the ROM 230 or the RAM 240) and invoked and/or executed by the processing engine 112 (e.g., the processor 220 of the computing device 200 illustrated in FIG. 2 and/or the modules and/or units  illustrated in FIG. 4) . The processing engine 112 may execute the set of instructions and, when executing the instructions, it may be configured to perform the process 500. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 500 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 5 and described below is not intended to be limiting.
An actual value in decimal format may be stored and processed in floating-point format or in a fixed-point format in a processor. Since it is computationally expensive to perform floating point calculations and operations on embedded processors (e.g., processors of mobile devices. ) , a floating-point value may need to convert to a fixed-point value for processing. In some embodiments, to convert a floating-point value in a fixed-point format, an amount of fraction bit may need to be specified. For example, Q format numbers are notionally fixed-point numbers to represent a floating-point value by using a Q number to specify the amount of the fraction bit. The conversion between a floating-point value and a fixed-point value may be determined by the following equation:
x i=x f*2 Q,  (1)
Wherein x i denotes a fixed-point value for an actual value (e.g., a decimal format value) , x f denotes a floating-point value for the same actual value, and Q denotes the Q number.
The range and accuracy of a decimal format value represented by the Q format number may depend on the Q number. The Q number is lower, Table 1 shown below is an exemplary table representing a relationship between the Q number and the range of decimal value of the actual value according to some embodiments of the present disclosure.
Table 1
Q number decimal range of the actual value
15 -1≤X≤0.9999695
14 -2≤X≤1.9999390
13 -4≤X≤3.9998779
12 -8≤X≤7.9997559
11 -16≤X≤15.9995117
10 -32≤X≤31.9990234
9 -64≤X≤63.9980469
8 -128≤X≤127.9960938
7 -256≤X≤255.9921875
6 -512≤X≤511.9804375
5 -1024≤X≤1023.96875
4 -2048≤X≤2047.9375
3 -4096≤X≤4095.875
2 -8192≤X≤8191.75
1 -16384≤X≤16383.5
0 -32768≤X≤32767
For example, if the Q number is 15, the decimal range of the actual value may be [-1, 0.9999695] . If the Q number is 10, the decimal range of the actual value may be [-32, 31.9990234] , compared with the case when Q number is 10, the range of the actual value is wider, but the accuracy of the actual value is lower (since the value of a decimal part when the Q number is 10 is lower than a value of a fraction part when the Q number is 15) . A massive data may be used to generate or update a machine learning network. The range and accuracy demand for the massive data may be different. Thus, it is necessary to determine different Q numbers for different range and accuracy demands of the massive data.
In 501, processing engine 112 (e.g., obtaining module 401) may obtain a training sample set. The training sample set may include a plurality of sample values. The training sample set may include a plurality of training samples. In  some embodiments, the training sample may be configured to generate or update the machine learning network. The machine learning network may be a convolutional neural network (CNN) , a deep belief network (DBN) , Stacked Auto-Encoders (SAE) , a logistic regression (LR) model, a support vector machine (SVM) , a decision tree model, a Naive Bayesian Model, a random forest model, a Restricted Boltzmann Machine (RBM) , a Q-learning Model, or the like, or a combination thereof. In some embodiments, a trained model may be generated by training a preliminary model based on the historical data A training sample may include one or more sample values. For example, if the training sample set is an image set including a plurality of images, the training sample may be an image in the image set, and the one or more sample values of the training sample may be pixel values of pixels in the image. The plurality of sample values may have a range. In some embodiments, the range of the one or more sample values may be predetermined. For example, if the training sample is a three channels 256-color image, the one or more sample values (i.e., pixel value for each channel) may be within [0, 255] . In some embodiments, the range of the one or more sample values may be determined based on a statistical approach.
In 502, the processing engine 112 (e.g., clustering module 402) may divide the plurality of sample values into a plurality of reference clusters. The processing engine 112 may divide the plurality of sample values into a plurality of reference clusters based on the plurality of sample values. The processing engine 112 may divide sample values which are similar to each other into a same reference cluster. For example, for a training sample set having the sample values as {1, 1.1, 2.5, 3, 7, 8, 9} , the processing engine 112 may divide the sample values “1” , “1.1” , “2.5” , and “3” into a reference cluster, and divide the sample values “7” , “8” and “9” into another reference cluster. In some embodiments, an amount of the reference clusters may be predetermined and the processing engine 112 may divide the plurality of sample values into a plurality of reference clusters based on the predetermined amount. Detailed description related to the predetermined amount of the reference clusters  may be found in Operation 505 and the description thereof. In some embodiments, the processing engine 112 may added numbers to the plurality of reference clusters. For example, if four reference clusters are generated in Operation 502, the processing engine 112 may assign the four reference clusters as “cluster 1, ” “cluster 2, ” “cluster 3, ” and “cluster 4” respectively.
Merely by way of illustration, the plurality of reference clusters may be determined a clustering technique. Exemplary clustering techniques may include connectivity-based clustering technique, centroid-based clustering, density-based clustering, and distribution-based clustering, or the like, or any combination thereof.
In 503, for each of the plurality of reference clusters, processing engine 112 (e.g., conversion parameter determination module 403) may determine one or more conversion parameters corresponding to a reference cluster based on the one or more sample values within the reference cluster. The one or more conversion parameters may be related to a conversion between the floating-point value and the fixed-point value. A sample value with fraction part, which is a decimal value, may be stored in a floating-point format. Since it is computationally expensive to perform floating point calculations and operations on embedded processors (e.g., processors of mobile devices. ) , a floating-point value may need to convert to a fixed-point format value for processing. The one or more conversion parameters may be related to a conversion between the fixed-point format and the floating-point format. In some embodiments, the one or more conversion parameters may include a Q number, and the floating-point value may convert to a fix-point value based on the Q number. In some embodiments, the one or more conversion parameters may include a displacement value. A displacement error of a fixed-point value converted by a floating-point value may be corrected based on the displacement value. FIG. 7 is a diagram illustrating exemplary reference clusters according to some embodiments of the present disclosure. As shown in FIG. 7, the dots on the axis represent the plurality of sample values. A plurality of sample values are divided into a reference cluster 701 and a reference cluster 702. Since the distribution of sample values in  reference cluster 701 is sparser than the distribution of sample values in reference cluster 702, a higher accuracy demand is needed to distinguish the sample values in reference cluster 702. Thus, the Q number of the reference cluster 702 (e.g., 15) is higher than the Q number of the reference cluster 701 (e.g., 13) . However, when the Q number is 15, according to table 1, the maximum value can be represented is 1. Thus, the displacement error may exist between the actual sample value and the fixed-point value representing the sample value in the reference cluster 702. Detailed description related to the determination of the Q number and the displacement error may be found in FIG. 6 and the description thereof.
In some embodiments, the processing engine 112 (e.g., conversion parameter determination module 403) may generate a look-up table (e.g., a hash table) based on the one or more conversion parameters of the plurality of reference clusters which the number of the reference cluster, assigned in Operation 502, may be considered as an index.
In 504, the processing engine 112 (e.g., obtaining module 401) may obtain a target value in the floating-point format. The target value may need to be processed via the machine learning network. Since it is computationally expensive to perform floating point calculations and operations on embedded processors (e.g., processors of mobile devices. ) , the target value stored in a floating-point format may need to convert to a fixed-point format value for machine learning network processing.
In 505, the processing engine 112 (e.g., target cluster determination 404) may determine a target cluster among the plurality of reference clusters based on the target value. In some embodiments, the processing engine 112 may determine the target cluster based on a distance between the target value and a center of the reference cluster. The processing engine 112 may determine the reference cluster with the shortest distance between the target value as the target cluster.
In some embodiments, the target value in the floating-point format may include a target cluster encoding area. The target cluster encoding area may  include one or more bits for encoding the number of the target cluster. The amount of the reference mentioned in Operation 502, may be determined based on a length of the target cluster encoding area. For example, if the length of the target cluster encoding area is 2 bits, the maximum amount of the reference cluster is 4 (i.e., 2 2) . If the cluster 3 is determined as the target cluster, the target cluster encoding area may include the bits “10” to represent the target cluster of the target value is cluster 3. The processing engine 112 may determine the length of the target cluster encoding area based on a distribution of the sample values.
In 506, the processing engine 112 (converting module 405) may convert the target value in the floating-point format into the fixed-point format based on the one or more conversion parameters corresponding to the target cluster. The processing engine 112 may convert the target value in the floating-point format into the fixed-point format based the Q number corresponding to the target cluster and the displacement value corresponding to the target cluster. In some embodiments, the processing engine 112 may determine the one or more conversion parameters corresponding to the target cluster by searching the look-up table. After the target value in the floating-point format is converted into the fixed-point format based on the one or more conversion parameters corresponding to the target cluster, the target value may be used in the machine learning network. A first result in the fixed-pointing format may be determined based on the machine learning network and the target value. In some embodiments, the first result in the fixed-pointing format may be converted into the floating-point format based on the one or more conversion parameters corresponding to the target cluster. In some embodiments, the machine learning network may be generated or updated based on the training sample set. The machine learning network may be a convolutional neural network (CNN) , a deep belief network (DBN) , Stacked Auto-Encoders (SAE) , a logistic regression (LR) model, a support vector machine (SVM) , a decision tree model, a Naive Bayesian Model, a random forest model, a Restricted Boltzmann Machine (RBM) , a Q-learning Model, or the like, or a combination thereof.
It should be noted that the above description of the process for converting a floating-point value into a fixed-point value is provided for the purpose of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, modules may be combined in various ways, or connected with other modules as sub-systems. Various variations and modifications may be conducted under the teaching of the present disclosure. However, those variations and modifications may not depart from the spirit and scope of this disclosure.
FIG. 6 is a flowchart illustrating an exemplary process for determining one or more conversion parameters according to some embodiments of the present disclosure. The process 600 may be executed by the system 100. For example, the process 600 may be implemented as a set of instructions (e.g., an application) stored in a storage device (e.g., the ROM 230 or the RAM 240) , and invoked and/or executed by the processing engine 112 (e.g., the processor 220 of the computing device 200 illustrated in FIG. 2 and/or the modules and/or units illustrated in FIG. 4) . The processing engine 112 may execute the set of instructions and, when executing the instructions, it may be configured to perform the process 600. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 600 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 6 and described below is not intended to be limiting.
In 601, the processing engine 112 (e.g., conversion parameter determination module 403) may determine an original center value of a plurality of sample values of the training sample set. In some embodiments, the original center value of the plurality of sample values may be predetermined, for example, the original center may be zero. In some embodiments, the original center value of the plurality of sample values may be related to a mean value of the plurality of the sample values. In some embodiment, the original center value of the plurality of sample values may be related to a median value of the plurality of the sample values.
In 602, the processing engine 112 (e.g., conversion parameter determination module 403) may determine a cluster center value corresponding to the reference cluster. In some embodiments, the cluster center value corresponding to the reference cluster may be related to a mean value of the sample values within the reference cluster. In some embodiment, the cluster center value corresponding to the reference cluster may be related to a median value of the sample values within the reference cluster.
In 603, the processing engine 112 (e.g., conversion parameter determination module 403) may determine a maximum range value corresponding to the reference cluster based on the cluster center value corresponding to the reference cluster and the sample values with the reference cluster. The processing engine 112 may determine a maximum difference between the cluster center value and the sample values within the reference cluster as the maximum range value.
In 604, the processing engine 112 (e.g., conversion parameter determination module 403) may determine a Q number corresponding to the reference cluster based on the maximum range value corresponding to the reference cluster. As shown in Table 1, the Q number is related to the range of a decimal value in the floating-point format. For example, if the maximum range value of a reference cluster is 7, the processing engine 112 may determine 12 as the Q number of the reference cluster.
In 605, the processing engine 112 (e.g., conversion parameter determination module 403) may determine a displacement value corresponding to the reference cluster based on the original center value and the cluster center value corresponding to the reference cluster. The processing engine 112 may determine the displacement value corresponding to the reference cluster based on a difference between the original center value and the cluster center value corresponding to the reference cluster.
It should be noted that the above description of the process for determining the directed graph is provided for the purpose of illustration, and not intended to limit  the scope of the present disclosure. For persons having ordinary skills in the art, modules may be combined in various ways, or connected with other modules as sub-systems. Various variations and modifications may be conducted under the teaching of the present disclosure. However, those variations and modifications may not depart from the spirit and scope of this disclosure.
To implement various modules, units, and their functionalities described in the present disclosure, computer hardware platforms may be used as the hardware platform (s) for one or more of the elements described herein. A computer with user interface elements may be used to implement a personal computer (PC) or any other type of work station or terminal device. A computer may also act as a server if appropriately programmed.
Having thus described the basic concepts, it may be rather apparent to those skilled in the art after reading this detailed disclosure that the foregoing detailed disclosure is intended to be presented by way of example only and is not limiting. Various alterations, improvements, and modifications may occur and are intended to those skilled in the art, though not expressly stated herein. These alterations, improvements, and modifications are intended to be suggested by this disclosure and are within the spirit and scope of the exemplary embodiments of this disclosure.
Moreover, certain terminology has been used to describe embodiments of the present disclosure. For example, the terms “one embodiment, ” “an embodiment, ” and/or “some embodiments” mean that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure. Therefore, it is emphasized and should be appreciated that two or more references to “an embodiment” or “one embodiment” or “an alternative embodiment” in various portions of this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined as suitable in one or more embodiments of the present disclosure.
Further, it will be appreciated by one skilled in the art, aspects of the present  disclosure may be illustrated and described herein in any of a number of patentable classes or context including any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof. Accordingly, aspects of the present disclosure may be implemented entirely hardware, entirely software (including firmware, resident software, micro-code, etc. ) or combining software and hardware implementation that may all generally be referred to herein as a “unit, ” “module, ” or “system. ” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer-readable media having computer readable program code embodied thereon.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including electromagnetic, optical, or the like, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that may communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including wireless, wireline, optical fiber cable, RF, or the like, or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB. NET, Python or the like, conventional procedural programming languages, such as the "C" programming language, Visual Basic, Fortran 2003, Perl, COBOL 2002, PHP, ABAP, dynamic programming languages such as Python, Ruby and Groovy, or other programming languages. The program code may execute entirely on the user's computer, partly on the user's  computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN) , or the connection may be made to an external computer (e.g., through the Internet using an Internet Service Provider) or in a cloud computing environment or offered as a service such as a Software as a Service (SaaS) .
Furthermore, the recited order of processing elements or sequences, or the use of numbers, letters, or other designations, therefore, is not intended to limit the claimed processes and methods to any order except as may be specified in the claims. Although the above disclosure discusses through various examples what is currently considered to be a variety of useful embodiments of the disclosure, it is to be understood that such detail is solely for that purpose, and that the appended claims are not limited to the disclosed embodiments, but, on the contrary, are intended to cover modifications and equivalent arrangements that are within the spirit and scope of the disclosed embodiments. For example, although the implementation of various components described above may be embodied in a hardware device, it may also be implemented as a software-only solution, e.g., an installation on an existing server or mobile device.
Similarly, it should be appreciated that in the foregoing description of embodiments of the present disclosure, various features are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure aiding in the understanding of one or more of the various embodiments. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed subject matter requires more features than are expressly recited in each claim. Rather, claimed subject matter may lie in less than all features of a single foregoing disclosed embodiment.

Claims (21)

  1. A system configured to convert a floating-point value to a fixed-point value, comprising:
    at least one non-transitory storage medium including a set of instructions; and
    at least one processor in communication with the at least one non-transitory storage medium, wherein when executing the set of instructions, the at least one processor is directed to:
    obtain a training sample set, wherein the training sample set includes a plurality of sample values;
    divide the plurality of sample values into a plurality of reference clusters based on the sample values;
    for each of the plurality of reference clusters, determine one or more conversion parameters corresponding to a reference cluster based on the one or more sample values within the reference cluster;
    obtain a target value in a floating-point format;
    determine a target cluster among the plurality of reference clusters based on the target value;
    convert the target value in the floating-point format into a fixed-point format based on the one or more conversion parameters corresponding to the target cluster.
  2. The system of claim 1, wherein the one or more conversion parameters includes a Q number, to determine the Q number corresponding to the reference cluster, the system is further directed to:
    determine a cluster center value corresponding to the reference cluster;
    determine a maximum range value corresponding to the reference cluster based on the cluster center value corresponding to the reference cluster and the sample values with the reference cluster;
    determine the Q number corresponding to the reference cluster based on the  maximum range value corresponding to the reference cluster.
  3. The system of claim 1 or claim 2, wherein the one or more conversion parameters includes a displacement value, to determine the displacement value displacement value corresponding to the reference cluster, the system is further directed to:
    determine an original center value of a plurality of sample values of the training sample set;
    determine a cluster center value corresponding to the reference cluster;
    determine the displacement value corresponding to the reference cluster; based on the original center value and the cluster center value corresponding to the reference cluster.
  4. The system of any one of claim 1-3, wherein the target value in the floating-point format includes a target cluster encoding area, and the system is further configured to:
    determine a distribution of the plurality of sample values;
    determine a length of the target cluster encoding area based on the distribution of the plurality of sample values.
  5. The system of claim 4, wherein the system is further configured to:
    determine a number of the reference cluster based on length of the target cluster encoding area;
    determine the plurality of reference clusters based on the number of the reference cluster.
  6. The system of claim of any one of claim 1-5, wherein the system is configured to:
    determine a first result in the fixed-pointing format based on the target value in  the fixed-pointing format and a machine learning network;
    convert the first result to the floating-point format based on the on the one or more conversion parameters corresponding to the target cluster.
  7. The system of claim 6, wherein the machine learning network is determined based on the training sample set.
  8. The system of any one of claim 1-7, wherein the system is further configured to:
    determine a look-up table based on the conversion parameters corresponding to the plurality of reference clusters.
  9. The system of claim 8, wherein the look-up table is a hash table.
  10. The system of claim 7, wherein to convert the target value in the floating-point format into a fixed-point format based on the one or more conversion parameters corresponding to the target cluster, the system is further configured to:
    obtain the one or more conversion parameters corresponding to the target cluster from the look-up table.
  11. A method implemented on a computing device for converting a floating-point value to a fixed-point value, the computing device including a memory and one or more processors, the method comprising:
    obtaining a training sample set, wherein the training sample set includes a plurality of sample values;
    dividing the plurality of sample values into a plurality of reference clusters based on the sample values;
    for each of the plurality of reference clusters, determining one or more conversion parameters corresponding to a reference cluster based on the one or  more sample values within the reference cluster;
    obtaining a target value in a floating-point format;
    determining a target cluster among the plurality of reference clusters based on the target value;
    converting the target value in the floating-point format into a fixed-point format based on the one or more conversion parameters corresponding to the target cluster.
  12. The method of claim 11, wherein the one or more conversion parameters includes a Q number, to determine the Q number corresponding to the reference cluster, the method further comprising:
    determining a cluster center value corresponding to the reference cluster;
    determining a maximum range value corresponding to the reference cluster based on the cluster center value corresponding to the reference cluster and the sample values with the reference cluster;
    determining the Q number corresponding to the reference cluster based on the maximum range value corresponding to the reference cluster.
  13. The method of claim 11 or claim 12, wherein the one or more conversion parameters includes a displacement value, to determine the displacement value displacement value corresponding to the reference cluster, the method further comprising:
    determining an original center value of a plurality of sample values of the training sample set;
    determining a cluster center value corresponding to the reference cluster;
    determining the displacement value corresponding to the reference cluster; based on the original center value and the cluster center value corresponding to the reference cluster.
  14. The method of any one of claims 11-13, wherein the target value in the  floating-point format includes a target cluster encoding area, and the method further comprises:
    determining a distribution of the plurality of sample values;
    determining a length of the target cluster encoding area based on the distribution of the plurality of sample values.
  15. The method of claim 14, wherein the method further comprises:
    determining a number of the reference cluster based on length of the target cluster encoding area;
    determining the plurality of reference clusters based on the number of the reference cluster.
  16. The method of any one of claims 11-15, further comprising:
    determining a first result in the fixed-pointing format based on the target value in the fixed-pointing format and a machine learning network;
    converting the first result to the floating-point format based on the on the one or more conversion parameters corresponding to the target cluster.
  17. The method of claim 16, wherein the machine learning network is determined based on the training sample set.
  18. The method of any one of claims 11-17, further comprising:
    determining a look-up table based on the conversion parameters corresponding to the plurality of reference clusters.
  19. The method of claim 18, wherein the look-up table is a hash table.
  20. The method of claim 17, wherein to convert the target value in the floating-point format into a fixed-point format based on the one or more conversion  parameters corresponding to the target cluster, the method further comprises:
    obtaining the one or more conversion parameters corresponding to the target cluster from the look-up table.
  21. A non-transitory computer readable medium comprising executable instructions that, wherein when executed by at least one processor, the executable instructions cause the at least one processor to effectuate a method comprising:
    obtaining a training sample set, wherein the training sample set includes a plurality of sample values;
    dividing the plurality of sample values into a plurality of reference clusters based on the sample values;
    for each of the plurality of reference clusters, determining one or more conversion parameters corresponding to a reference cluster based on the one or more sample values within the reference cluster;
    obtaining a target value in a floating-point format;
    determining a target cluster among the plurality of reference clusters based on the target value;
    converting the target value in the floating-point format into a fixed-point format based on the one or more conversion parameters corresponding to the target cluster.
PCT/CN2019/075428 2019-02-14 2019-02-19 Systems and methods for fixed-point conversion WO2020164162A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910115155.2 2019-02-14
CN201910115155.2A CN111563600B (en) 2019-02-14 2019-02-14 System and method for fixed-point conversion

Publications (1)

Publication Number Publication Date
WO2020164162A1 true WO2020164162A1 (en) 2020-08-20

Family

ID=72045185

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/075428 WO2020164162A1 (en) 2019-02-14 2019-02-19 Systems and methods for fixed-point conversion

Country Status (2)

Country Link
CN (1) CN111563600B (en)
WO (1) WO2020164162A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114466439A (en) * 2022-01-26 2022-05-10 广州慧睿思通科技股份有限公司 Input power conversion method, device, equipment and medium for base station

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105760933A (en) * 2016-02-18 2016-07-13 清华大学 Method and apparatus for fixed-pointing layer-wise variable precision in convolutional neural network
US9436442B1 (en) * 2012-12-05 2016-09-06 The Mathworks, Inc. Automatic floating-point to fixed-point conversion
US20180107451A1 (en) * 2016-10-14 2018-04-19 International Business Machines Corporation Automatic scaling for fixed point implementation of deep neural networks
CN109102064A (en) * 2018-06-26 2018-12-28 杭州雄迈集成电路技术有限公司 A kind of high-precision neural network quantization compression method

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9384042B2 (en) * 2008-12-16 2016-07-05 International Business Machines Corporation Techniques for dynamically assigning jobs to processors in a cluster based on inter-thread communications
CN107368375B (en) * 2016-05-11 2019-11-12 华中科技大学 A kind of K-means clustering algorithm FPGA acceleration system based on MapReduce
CN108875921A (en) * 2017-08-03 2018-11-23 北京旷视科技有限公司 Neural network parameter fixed point method, apparatus, system and computer-readable medium
CN108764458B (en) * 2018-05-15 2021-03-02 武汉环宇智行科技有限公司 Method and system for reducing storage space consumption and calculation amount of mobile equipment
CN109086815B (en) * 2018-07-24 2021-08-31 中国人民解放军国防科技大学 Floating point number discretization method in decision tree model based on FPGA

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9436442B1 (en) * 2012-12-05 2016-09-06 The Mathworks, Inc. Automatic floating-point to fixed-point conversion
CN105760933A (en) * 2016-02-18 2016-07-13 清华大学 Method and apparatus for fixed-pointing layer-wise variable precision in convolutional neural network
US20180107451A1 (en) * 2016-10-14 2018-04-19 International Business Machines Corporation Automatic scaling for fixed point implementation of deep neural networks
CN109102064A (en) * 2018-06-26 2018-12-28 杭州雄迈集成电路技术有限公司 A kind of high-precision neural network quantization compression method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LIU MIAOGE: "A Study on Support Vector Machine for Gesture Recognition based on Embedded System", CHINESE MASTER'S THESES FULL-TEXT DATABASE INFORMATION SCIENCE AND TECHNOLOGY, no. 4, 30 April 2017 (2017-04-30), pages 1 - 50, DOI: 20191010181433A *

Also Published As

Publication number Publication date
CN111563600A (en) 2020-08-21
CN111563600B (en) 2024-05-10

Similar Documents

Publication Publication Date Title
US11631027B2 (en) Systems and methods for allocating service requests
WO2018233680A1 (en) Systems and methods for querying a database
EP3577578A1 (en) Systems and methods for route searching
US11193786B2 (en) System and method for determining location
WO2017148202A1 (en) Systems and methods for determining predicted distribution of future transportation service time point
AU2016102430A4 (en) Systems and methods for predicting service time point
WO2019242286A1 (en) Systems and methods for allocating service requests
WO2018120565A1 (en) Methods and systems for modifying location information of a request
AU2017411198B2 (en) Systems and methods for route planning
WO2020147145A1 (en) Systems and methods for online to offline services
WO2019015661A1 (en) Systems and methods for service request allocation
WO2020155135A1 (en) Systems and methods for identifying similar trajectories
US11748860B2 (en) Systems and methods for new road determination
US11120091B2 (en) Systems and methods for on-demand services
US11290547B2 (en) Systems and methods for determining an optimal transportation service type in an online to offline service
WO2020164162A1 (en) Systems and methods for fixed-point conversion
WO2021068189A1 (en) Systems and methods for image generation
US20200293424A1 (en) Systems and methods for evaluating performance of models
WO2021031222A1 (en) Systems and methods for predicting service demand information
US20200327108A1 (en) Systems and methods for indexing big data
WO2021022487A1 (en) Systems and methods for determining an estimated time of arrival
US20200142876A1 (en) Systems and methods for spatial index

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19915212

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19915212

Country of ref document: EP

Kind code of ref document: A1