Ejemplo n.º 1
0
def run_network_on_image():

    import make_seqs
    ims1, ims1a, ims2=make_seqs.make_seqs(slength=6,num_seqs=1000)

    input_var1 =  T.tensor4('inputs')
    input_var2 = T.tensor4('inputs_comp')

    network = compare_net.build_cnn_new_conv(input_var1, input_var2)
    if (os.path.isfile('net.npy')):
        spars=np.load('net.npy')
        lasagne.layers.set_all_param_values(network,spars)
    test_corr = lasagne.layers.get_output(network, deterministic=True)
    test_fn = theano.function([input_var1, input_var2], [test_corr])

    tcorr_same=test_fn(ims1,ims1a)
    tcorr_diff=test_fn(ims1,ims2)
    tt_same_std=np_standardize(tcorr_same[0])
    tt_diff_std=np_standardize(tcorr_diff[0])
    corrs_same=get_shifted_correlations(tt_same_std)
    corrs_diff=get_shifted_correlations(tt_diff_std)
    dps=optimize_dp(corrs_same)
    dpd=optimize_dp(corrs_diff)
    print(np.min(dps),np.max(dps),np.min(dpd),np.max(dpd))
    import pylab as py
    py.figure(1)
    py.hist(dps,alpha=.5)
    py.hist(dpd,alpha=.5)
    py.show()
    print('done ')
Ejemplo n.º 2
0
def run_network_on_all_pairs(num_seqs=40):

    import make_seqs
    ims1, ims1a, ims2=make_seqs.make_seqs(slength=6,num_seqs=num_seqs, from_font=False)

    input_var1 =  T.tensor4('inputs')
    input_var2 = T.tensor4('inputs_comp')

    network = compare_net.build_cnn_new_conv(input_var1, input_var2)
    if (os.path.isfile('net.npy')):
        spars=np.load('net.npy')
        lasagne.layers.set_all_param_values(network,spars)
    test_corr = lasagne.layers.get_output(network, deterministic=True)
    test_fn = theano.function([input_var1, input_var2], [test_corr])

    tcorr_same=test_fn(ims1,ims1a)
    tt_same_std=np_standardize(tcorr_same[0])
    temp=np.copy(tt_same_std)
    ii=np.arange(0,num_seqs)
    np.random.shuffle(ii)
    iii=np.copy(ii)
    temp[1,]=tt_same_std[1,iii]
    dps=np.zeros((num_seqs,num_seqs))
    for n in range(num_seqs):
        temp[1,]=tt_same_std[1,np.roll(ii,-n),]
        corrs_same=get_shifted_correlations(temp)
        dps[n,]=optimize_dp(corrs_same)
    dps=dps.transpose()
    dpss=dps.copy()
    for n in range(num_seqs):
        dpss[n,]=np.roll(dps[n,],n)
    print(dpss)
    print(iii)
    print("done")
    dpss=np.max(dpss)-dpss

    #dps=dps.transpose()
    match_them(dpss,iii)
    print('done ')