コード例 #1
0
ファイル: __init__.py プロジェクト: danelliottster/ANN
def rtrl_batch_XOR(numSamples=500,seqLen=50,delay=2):
    # generate data - a set of xor streams
    I = np.empty([seqLen,numSamples,2])
    T = np.empty([seqLen,numSamples,1])
    for n in range(numSamples):
        (tmpI,tmpT) = genData.my_xor_stream(seqLen,delay)
        I[:,n,:] = tmpI
        T[:,n,:] = tmpT
    # init RNN
    W=rtrl.allocate(2,1,5)
    ANN.initWeights(W)
    uhs.learningRate.rate = 0.000015
    uhs.momentum.momentum = 0.1
    uhs.momentum.paramUpdates_old = None
    # learn
    errorHist = rtrl.rtrl_batch(I,T,W,maxEpochs=3000,updateHooks=(uhs.learningRate,uhs.momentum))
    # evaluate solution
    net = np.empty((seqLen*1,numSamples,6))
    A = np.zeros((seqLen*1+1,numSamples,6))
    rtrl.batch_forward(I,W,net,A,afs.sigmoid,numCycles=1)
    target = T[19:50,:,0] > 0.5
    learned = A[20:51,:,0] > 0.5
    result = np.logical_and(target,learned)
    accuracy = float(np.sum(result)) / float(np.prod(result.shape))
    print "Accuracy: " + str(accuracy)
    # return activations
    return (I,T,A)
コード例 #2
0
ファイル: __init__.py プロジェクト: danelliottster/ANN
def rtrl_XOR(numSamples=10000,delay=2):
    (I,T) = genData.my_xor_stream(numSamples,delay)