A multi-processor neural network processing apparatus comprising: a plurality of network processing engines (92',92"/30',30"), each for processing one or more layers of a neural network according to a network configuration; a memory for at least temporarily storing: network configuration information for said network processing engines, said configuration information comprising program information and weights for one or more neural networks; and input image information for processing by one or more of said network processing engines, intermediate image information produced by said network processing engines and output information produced by said network processing engines when executing said one or more neural networks; and a system bus across which said plurality of network processing engines access said memory, wherein at least one of said network processing engines is configured, when otherwise idle, to identify configuration information and input image information to be processed by another target network processing engine and to use said configuration information and input image information to replicate the processing of the target network processing engine, said apparatus being configured to compare at least one portion of information output by said target network processing engine with corresponding information generated by said one of said network processing engines to determine if at least one of said target network processing engine or said one of said network processing engines is operating correctly and, responsive to said comparison failing, to flag that said one of said network processing engines or said target network processing engine is potentially faulty. a plurality of network processing engines (92',92"/30',30"), each for processing one or more layers of a neural network according to a network configuration; a memory for at least temporarily storing: network configuration information for said network processing engines, said configuration information comprising program information and weights for one or more neural networks; and input image information for processing by one or more of said network processing engines, intermediate image information produced by said network processing engines and output information produced by said network processing engines when executing said one or more neural networks; and a system bus across which said plurality of network processing engines access said memory, wherein at least one of said network processing engines is configured, when otherwise idle, to identify configuration information and input image information to be processed by another target network processing engine and to use said configuration information and input image information to replicate the processing of the target network processing engine, said apparatus being configured to compare at least one portion of information output by said target network processing engine with corresponding information generated by said one of said network processing engines to determine if at least one of said target network processing engine or said one of said network processing engines is operating correctly and, responsive to said comparison failing, to flag that said one of said network processing engines or said target network processing engine is potentially faulty. <EOS>