A neural network training method, performed using a resistive random access memory, RRAM, wherein the method comprises: Inputting neuron input values <ril, ri2, ..., rin> of an r th layer of a neural network to the RRAM, and performing calculation for the neuron input values <ri1, ri2, ..., rin> based on filters (filter) in the RRAM, to obtain neuron output values <ro1, ro2, ..., rom> of the r th layer of the neural network, wherein n is a positive integer greater than 0, and m is a positive integer greater than 0; performing calculation based on kernel values of the RRAM, the neuron input values <ril, ri2, ..., rin> of the r th layer of the neural network, the neuron output values <ro1, ro2, ..., rom> of the r th layer of the neural network, and backpropagation error values <B1, B2, ..., Bm> of the r th layer of the neural network, to obtain backpropagation update values <C1, C2, ..., Cm> of the r th layer of the neural network, wherein the kernel values of the RRAM are matrix values of the filters in the RRAM, and the backpropagation error values <B1, B2, ..., Bm> of the r th layer of the neural network are obtained based on the neuron output values <ro1, ro2, ..., rom> of the r th layer of the neural network and neuron reference output values <rtl, rt2, ..., rtm> of the r th layer of the neural network; characterised in that the method further comprises: comparing the backpropagation update values <C1, C2, ..., Cm> of the r th layer of the neural network with a preset threshold; and only when the backpropagation update values <C1, C2, ..., Cm> of the r th layer of the neural network are greater than the preset threshold, updating the filters in the RRAM based on the backpropagation update values <C1, C2, ..., Cm> of the r th layer of the neural network. Inputting neuron input values <ril, ri2, ..., rin> of an r th layer of a neural network to the RRAM, and performing calculation for the neuron input values <ri1, ri2, ..., rin> based on filters (filter) in the RRAM, to obtain neuron output values <ro1, ro2, ..., rom> of the r th layer of the neural network, wherein n is a positive integer greater than 0, and m is a positive integer greater than 0; performing calculation based on kernel values of the RRAM, the neuron input values <ril, ri2, ..., rin> of the r th layer of the neural network, the neuron output values <ro1, ro2, ..., rom> of the r th layer of the neural network, and backpropagation error values <B1, B2, ..., Bm> of the r th layer of the neural network, to obtain backpropagation update values <C1, C2, ..., Cm> of the r th layer of the neural network, wherein the kernel values of the RRAM are matrix values of the filters in the RRAM, and the backpropagation error values <B1, B2, ..., Bm> of the r th layer of the neural network are obtained based on the neuron output values <ro1, ro2, ..., rom> of the r th layer of the neural network and neuron reference output values <rtl, rt2, ..., rtm> of the r th layer of the neural network; characterised in that the method further comprises: comparing the backpropagation update values <C1, C2, ..., Cm> of the r th layer of the neural network with a preset threshold; and only when the backpropagation update values <C1, C2, ..., Cm> of the r th layer of the neural network are greater than the preset threshold, updating the filters in the RRAM based on the backpropagation update values <C1, C2, ..., Cm> of the r th layer of the neural network. comparing the backpropagation update values <C1, C2, ..., Cm> of the r th layer of the neural network with a preset threshold; and only when the backpropagation update values <C1, C2, ..., Cm> of the r th layer of the neural network are greater than the preset threshold, updating the filters in the RRAM based on the backpropagation update values <C1, C2, ..., Cm> of the r th layer of the neural network. <EOS>