1. A method for implementing an artificial neural network comprises: connecting a plurality of receiving neurons to a plurality of transmitting neurons through memristive synapses, each memristive synapse having a weight; initializing weights of the memristive synapses to a conductive state; presenting a input vector through the memristive synapses to the plurality of receiving neurons; and modifying the state of one or more of the memristive synapses based on the input vector.