Exemplo n.º 1
0
def process(inp_r, inp_s):
    num_samples = sr.get_num_samples(inp_s)
    d_range = sr.get_ranges(inp_r)  # ,num_samples,size)
    f_sig = open(inp_s, 'r')
    d_sig = np.fromfile(f_sig, dtype=int, sep=' ')
    d_sig.shape = (d_sig.size / num_samples, num_samples)
    d_sig = np.zeros_like(d_sig)
    print d_sig.shape, d_sig.size

    for r in d_range:
        d_sig[r[0]][r[1]:r[2]] = 1

    d_sig.tofile(open('ans_' + inp_s, 'w'), sep=' ', format="%d")
Exemplo n.º 2
0
def process(inp_r, inp_s):
    num_samples = sr.get_num_samples(inp_s)
    d_range = sr.get_ranges(inp_r) # ,num_samples,size)
    f_sig = open(inp_s,'r')
    d_sig = np.fromfile(f_sig,dtype=int,sep=' ')
    d_sig.shape = ( d_sig.size/num_samples,num_samples )
    d_sig = np.zeros_like(d_sig)
    print d_sig.shape, d_sig.size

    for r in d_range:
        d_sig[r[0]][r[1]:r[2]] = 1
    
    d_sig.tofile(open('ans_'+inp_s,'w'),sep=' ',format="%d")
Exemplo n.º 3
0
    def __init__(self, run_num, plane, window):
        no_noise = "%s_sig_no_noise_%s.csv" % (run_num, plane)
        ranges = "sig_%s_sig_no_noise_%s.csv" % (run_num, plane)
        time_noise = "%s_sig_time_noise_%s.csv" % (run_num, plane)
        freq_noise = "%s_sig_freq_noise_%s.csv" % (run_num, plane)
        win_fraction = 5

        self.window = window
        self.run_num = run_num
        self.plane = plane
        print "getting range info", ranges
        self.num_samples = sr.get_num_samples(no_noise)
        self.d_range = sr.get_ranges(ranges)

        self.inp_sig = self.get_data(no_noise)
        self.inp_noise_time = self.get_data(time_noise)
        self.inp_noise_freq = self.get_data(freq_noise)
        print "done with data reading"

        self.d_only_nt = self.inp_noise_time - self.inp_sig
        self.d_only_nf = self.inp_noise_freq - self.inp_sig
        print "done with noise calc"

        self.answers = np.zeros(self.inp_sig.size, dtype=np.bool_)
        self.answers.shape = self.inp_sig.shape
        for r in self.d_range:
            self.answers[r[0]][r[1]:r[2]] = True
        print "done with setting answers"

        seq_X = []
        seq_y = []
        seq_n = []

        ns = (self.d_only_nt, self.d_only_nf)

        for r in self.d_range:
            wire = r[0]
            mid = r[5]
            start = max(r[1] - (self.window / win_fraction), 0)
            end = min(r[2] + self.window / win_fraction, self.num_samples)

            if end - start < self.window:
                # the window is too small, make it bigger
                if start < self.window: end = start + self.window
                else: start = end - self.window

            rstart = np.random.randint(0,
                                       high=self.num_samples - (end - start))
            rend = rstart + (end - start)
            noise_win = ns[np.random.randint(2)][wire][rstart:rend]
            noise = ns[np.random.randint(2)][wire][start:end]

            #nt = self.d_only_nt[wire][start:end]
            #nf = self.d_only_nf[wire][start:end]
            #ns = nt #+nf
            #largest = max(np.max(nt),np.max(nf))
            #m=largest / max(1,max(ns))
            #noise = m*ns

            seq_n.append(noise_win)
            seq_X.append(self.inp_sig[wire][start:end] - mid + noise)
            seq_y.append(self.answers[wire][start:end])
        print "done with sequence generating"

        self.train_X = []
        self.train_y = []
        self.train_n = []

        for s_X, s_y, s_n in zip(seq_X, seq_y, seq_n):
            for i in range(0, len(s_X) - self.window + 1):
                self.train_X.append(s_X[i:i + self.window])
                self.train_y.append(s_y[i:i + self.window])
                self.train_n.append(s_n[i:i + self.window])
        print "done with training data generation"
        print len(self.train_X), len(self.train_y), len(self.train_n)
Exemplo n.º 4
0
def process(inp,size):
    print inp

    num_samples = sr.get_num_samples(inp[0])
    d_range = sr.get_ranges(inp[3]) # ,num_samples,size)

    #print num_samples, d_range.size
    
    f_sig = open(inp[0],'r')
    f_nt  = open(inp[1],'r')
    f_nf  = open(inp[2],'r')

    print 'start reads'
    d_sig = np.fromfile(f_sig,dtype=int,sep=' ')
    print 'done with sig'
    d_nt  = np.fromfile(f_nt,dtype=int,sep=' ')
    print 'done with np'
    d_nf  = np.fromfile(f_nf,dtype=int,sep=' ')
    print 'done with nf'

    d_sig.shape = ( d_sig.size/num_samples,num_samples )
    d_nt.shape  = ( d_nt.size/num_samples,num_samples )
    d_nf.shape  = ( d_nf.size/num_samples,num_samples )

    d_only_nt = d_nt - d_sig
    d_only_nf = d_nf - d_sig

    def func(a,dset):
        b=np.zeros(size,dtype=long)
        start=a[1]
        end=a[2]
        offset=(size/2)-(end-start+1)/2
        b[(offset):(offset+end-start)]=dset[a[0]][ start:end ]-a[5]
        return b

    def func_with_nt(a):
        return func(a,d_sig) + func(a,d_nt)

    def func_with_nf(a):
        return func(a,d_sig) + func(a,d_nf)

    def func_with_both(a):
        return func(a,d_sig) + func(a,d_nf) + func(a,d_nt)

    def func_answers(a):
        return func(a,d_sig) != 0
    
    # this works for the close and smaller than 50 intervals
    all_answers=np.apply_along_axis(func_answers,1,d_range)
    all_both=np.apply_along_axis(func_with_both,1,d_range)
    all_nt=np.apply_along_axis(func_with_nt,1,d_range)
    all_nf=np.apply_along_axis(func_with_nf,1,d_range)

    rstart=10
    rend=14
    print all_nf[rstart:rend]
    print all_nt[rstart:rend]
    print all_both[rstart:rend]
    print all_answers[rstart:rend]

    all_nf.tofile(open('all_'+inp[2],'w'),sep=' ',format="%d")
    all_nt.tofile(open('all_'+inp[1],'w'),sep=' ',format="%d")
    all_both.tofile(open('all_'+inp[0],'w'),sep=' ',format="%d")
    all_answers.tofile(open('all_'+inp[0],'w'),sep=' ',format="%d")

    sys.exit(0)
Exemplo n.º 5
0
def process(inp, size):
    print inp

    num_samples = sr.get_num_samples(inp[0])
    d_range = sr.get_ranges(inp[3])  # ,num_samples,size)

    #print num_samples, d_range.size

    f_sig = open(inp[0], 'r')
    f_nt = open(inp[1], 'r')
    f_nf = open(inp[2], 'r')

    print 'start reads'
    d_sig = np.fromfile(f_sig, dtype=int, sep=' ')
    print 'done with sig'
    d_nt = np.fromfile(f_nt, dtype=int, sep=' ')
    print 'done with np'
    d_nf = np.fromfile(f_nf, dtype=int, sep=' ')
    print 'done with nf'

    d_sig.shape = (d_sig.size / num_samples, num_samples)
    d_nt.shape = (d_nt.size / num_samples, num_samples)
    d_nf.shape = (d_nf.size / num_samples, num_samples)

    d_only_nt = d_nt - d_sig
    d_only_nf = d_nf - d_sig

    def func(a, dset):
        b = np.zeros(size, dtype=long)
        start = a[1]
        end = a[2]
        offset = (size / 2) - (end - start + 1) / 2
        b[(offset):(offset + end - start)] = dset[a[0]][start:end] - a[5]
        return b

    def func_with_nt(a):
        return func(a, d_sig) + func(a, d_nt)

    def func_with_nf(a):
        return func(a, d_sig) + func(a, d_nf)

    def func_with_both(a):
        return func(a, d_sig) + func(a, d_nf) + func(a, d_nt)

    def func_answers(a):
        return func(a, d_sig) != 0

    # this works for the close and smaller than 50 intervals
    all_answers = np.apply_along_axis(func_answers, 1, d_range)
    all_both = np.apply_along_axis(func_with_both, 1, d_range)
    all_nt = np.apply_along_axis(func_with_nt, 1, d_range)
    all_nf = np.apply_along_axis(func_with_nf, 1, d_range)

    rstart = 10
    rend = 14
    print all_nf[rstart:rend]
    print all_nt[rstart:rend]
    print all_both[rstart:rend]
    print all_answers[rstart:rend]

    all_nf.tofile(open('all_' + inp[2], 'w'), sep=' ', format="%d")
    all_nt.tofile(open('all_' + inp[1], 'w'), sep=' ', format="%d")
    all_both.tofile(open('all_' + inp[0], 'w'), sep=' ', format="%d")
    all_answers.tofile(open('all_' + inp[0], 'w'), sep=' ', format="%d")

    sys.exit(0)
Exemplo n.º 6
0
    def __init__(self, run_num, plane, window):
        no_noise = "%s_sig_no_noise_%s.csv"%(run_num,plane)
        ranges = "sig_%s_sig_no_noise_%s.csv"%(run_num,plane)
        time_noise = "%s_sig_time_noise_%s.csv"%(run_num,plane)
        freq_noise = "%s_sig_freq_noise_%s.csv"%(run_num,plane)
        win_fraction = 5

        self.window=window
        self.run_num = run_num
        self.plane = plane
        print "getting range info",ranges
        self.num_samples = sr.get_num_samples(no_noise)
        self.d_range = sr.get_ranges(ranges)
        
        self.inp_sig = self.get_data(no_noise)
        self.inp_noise_time = self.get_data(time_noise)
        self.inp_noise_freq = self.get_data(freq_noise)
        print "done with data reading"
        
        self.d_only_nt = self.inp_noise_time - self.inp_sig
        self.d_only_nf = self.inp_noise_freq - self.inp_sig
        print "done with noise calc"
        
        self.answers = np.zeros(self.inp_sig.size,dtype=np.bool_)
        self.answers.shape = self.inp_sig.shape
        for r in self.d_range: self.answers[r[0]][r[1]:r[2]]=True
        print "done with setting answers"
            
        seq_X = []
        seq_y = []
        seq_n = []

        ns=(self.d_only_nt,self.d_only_nf)
        
        for r in self.d_range:
            wire=r[0]
            mid=r[5]
            start=max(r[1]-(self.window/win_fraction), 0)
            end=min(r[2]+self.window/win_fraction, self.num_samples)

            if end-start < self.window:
                # the window is too small, make it bigger
                if start < self.window: end = start+self.window
                else: start=end-self.window

            rstart=np.random.randint(0,high=self.num_samples-(end-start))
            rend=rstart+(end-start)
            noise_win = ns[np.random.randint(2)][wire][rstart:rend]
            noise = ns[np.random.randint(2)][wire][start:end]
            
            #nt = self.d_only_nt[wire][start:end]
            #nf = self.d_only_nf[wire][start:end]
            #ns = nt #+nf
            #largest = max(np.max(nt),np.max(nf))
            #m=largest / max(1,max(ns))
            #noise = m*ns

            seq_n.append(noise_win)
            seq_X.append( self.inp_sig[wire][start:end]-mid + noise )
            seq_y.append( self.answers[wire][start:end] )
        print "done with sequence generating"
        
        self.train_X = []
        self.train_y = []
        self.train_n = []
            
        for s_X,s_y,s_n in zip(seq_X,seq_y,seq_n):
            for i in range(0,len(s_X)-self.window+1):
                self.train_X.append(s_X[i:i+self.window])
                self.train_y.append(s_y[i:i+self.window])
                self.train_n.append(s_n[i:i+self.window])
        print "done with training data generation"
        print len(self.train_X),len(self.train_y), len(self.train_n)