def train(self, sess, X_train, Y_train, X_test, Y_test,num_epochs, num_count,logs): res = 0.0 summary_writer = tf.summary.FileWriter(logs+'/train',sess.graph) summary_writer1 = tf.summary.FileWriter(logs+'/test',sess.graph) sess.run(self.init_op) datagen = util.get_generator() # 模型持久化器 saver = tf.train.Saver() batch_size = 128 print('batch_size:', batch_size) # 开始迭代 for e in range(num_epochs): yieldData = Data(X_train,Y_train) print('Epoch', e) batches = 0 if e != 0 and (e %(num_epochs-1) == 0 or e%20==0): #每迭代一定次数保存下模型 saver.save(sess, logs+'/'+str(e)+'model') #使用原始数据进行迭代 for i in range(1): for batch_X,batch_Y in yieldData.get_next_batch(batch_size): _, lossval, scoreval = sess.run([self.train_op,self.loss, self.score], feed_dict={self.X: batch_X, self.keep_prob:self.keep_prob_train, self.y:batch_Y,self.is_training:True}) summary2, accuval, scoreval, lossval = sess.run([self.merged, self.accuracy_test, self.score,self.loss], feed_dict={self.X: X_test, self.keep_prob:1, self.y:Y_test,self.is_training:False}) print("Test accuracy:", accuval) print("Test loss:",lossval) return 0
def get_calc_data(): data = RegsData(sz=16) data.add_page('calc0') data.add('label0', label='Fmix = Fvco / DIV') data.add_page('calc1') data.add('Fmix', wdgt='spin', value=Data.spn(356.25, 2850, 0.01), text='1440', msg='Fmix', src=Fmix_src_cb) data.add('Fvco1', wdgt='entry', state='readonly', msg='Fvco', src=Fvco_src_cb) data.add('DIV', wdgt='combo', state='readonly', text='2', value=['2', '4', '8'], msg='DIV', src=lambda d,v: d.list_src('R22', 3, 4, ['2', '4', '8'], v)) data.add_page('calc2') data.add('label1', label='Fvco = 2 x Fpfd x (INT + FRAC/MOD )') data.add_page('calc3') data.add('Fvco', wdgt='entry', state='readonly', msg='Fvco', src=Fvco_src_cb) data.add('Fpfd1', wdgt='entry', state='readonly', msg='Fpfd', src=Fpfd_src_cb) data.add('INT', wdgt='spin', value=Data.spn(21, 123), msg='INT', src=lambda d,v: d.bits_src('R02', 0, 10, v)) data.add('FRAC', wdgt='spin', value=Data.spn(0, 63535), msg='FRAC', src=lambda d,v: d.bits_src('R03', 0, 15, v)) data.add('MOD', wdgt='spin', value=Data.spn(1, 63535), msg='MOD', src=lambda d,v: d.bits_src('R04', 0, 15, v)) data.add_page('calc4') data.add('label0', label='Fpfd = REFin x REFSEL') data.add_page('calc5') data.add('Fpfd', wdgt='entry', state='readonly', msg='Fpfd', src=Fpfd_src_cb) data.add('REFin', wdgt='entry', state='readonly', msg='REFin', src=lambda d,v: d.dev_src('refin')) data.add('REFSEL', wdgt='combo', state='readonly', value=refsel_list, msg='REFSEL', src=lambda d,v: d.list_src('R21', 0, 2, refsel_list, v)) data.add_page('calc6') data.add('MUXOUT', wdgt='combo', state='readonly', value=muxout_list, label='MUXOUT', width=30, src=lambda d,v: d.list_src('R21', 4, 6, muxout_list, v)) data.add_page('calc7') data.add('VCOSEL', wdgt='combo', state='readonly', value=vcosel_list, label='VCOSEL', src=lambda d,v: d.list_src('R22', 0, 2, vcosel_list, v)) return data
def get_mntr(dev): mntr = Data(io_cb=dev_serial_io_cb) mntr.add_page('mntr0', send=True) mntr.add('alarm', wdgt='alarm', msg='Sum Alarm', trace_cb=alarm_trace_cb) mntr.add('temp', wdgt='entry', state='readonly', msg='Temperature') mntr.add('pwr', wdgt='entry', state='readonly', msg='Power level') return mntr
def get_lpf_ctrl(data=None, cmd=None): if not data: data = Data(name='LPF', io_cb=util_io_cb) if not cmd: cmd = 'lpf' data.add(cmd, label='LPF, MHz', wdgt='spin', text='15', value={'min':0, 'max':31, 'step':1}, fmt_cb=lpf_fmt_cb, cmd_cb=lpf_cmd_cb, send=True) data.add('g3', label='Preamplifier gain', wdgt='radio', text=gain_list[2][0], value=gain_list[2], fmt_cb=lambda v,r: gain_fmt_cb(v,r,2), send=False) data.add('g2', label='Postamplifier gain', wdgt='radio', text=gain_list[1][0], value=gain_list[1], fmt_cb=lambda v,r: gain_fmt_cb(v,r,1), send=False) data.add('g1', label='VGA max gain', wdgt='radio', text=gain_list[0][0], value=gain_list[0], fmt_cb=lambda v,r: gain_fmt_cb(v,r,0), send=False)
def get_mntr(dev): data = Data(name='mntr', io_cb=lambda d, c: util_io_cb(d, c, prefix='ALT')) data.add('pio', label='IN', wdgt='entry', state='readonly', cmd_cb=alt_cmd_cb, send=True) return data
def get_ctrl(dev): spn_max, spn_step = 2.5, 0.05 if dev['type'] == 'AD5620_2_5V': spn_max = 5 data = Data(name='Voltage', send=True, io_cb=util_io_cb) fmt_cb = lambda val, read, spn_max=spn_max: float_fmt_cb(val, read, spn_max) cmd_cb = lambda dev, cmd, val: spi_efc_cmd_cb(dev, cmd, val, ncpha='0', cpol='0') data.add('out', label='OUT, V', wdgt='spin', value=Data.spn(0, spn_max, spn_step), fmt_cb=fmt_cb, cmd_cb=cmd_cb) return data
def get_mntr(dev): mntr = Data(name='status', send=True, io_cb=dev_io_cb) mntr.add('status', wdgt='alarm', trace_cb=alarm_trace_cb, fmt_cb=status_fmt_cb, msg='Power supply') add_status = lambda n, msg: mntr.add('status%d' % n, wdgt='alarm', send=False, trace_cb=alarm_trace_cb, fmt_cb=lambda val, read: status_fmt_cb(val,read,n), msg=msg) add_status(1, 'Synth1 lock detect') add_status(2, 'Synth2 (aux) lock detect') add_status(3, 'Output level < threshold') mntr.add_page('mntr') mntr.add('5_5v', wdgt='entry', label='5.5V', state='readonly', msg='5.5V') mntr.add('txl', wdgt='entry', label='TXL', state='readonly', msg='TX signal level') return mntr
def main(): train_data = pickle.load( open('../datasets/' + opt.dataset + '/train.txt', 'rb')) test_data = pickle.load( open('../datasets/' + opt.dataset + '/test.txt', 'rb')) if opt.dataset == 'diginetica': n_node = 43097 elif opt.dataset == 'Tmall': n_node = 40727 elif opt.dataset == 'Nowplaying': n_node = 60416 else: n_node = 309 train_data = Data(train_data, shuffle=True, n_node=n_node) test_data = Data(test_data, shuffle=True, n_node=n_node) model = trans_to_cuda( DHCN(adjacency=train_data.adjacency, n_node=n_node, lr=opt.lr, l2=opt.l2, beta=opt.beta, layers=opt.layer, emb_size=opt.embSize, batch_size=opt.batchSize, dataset=opt.dataset)) top_K = [5, 10, 20] best_results = {} for K in top_K: best_results['epoch%d' % K] = [0, 0] best_results['metric%d' % K] = [0, 0] for epoch in range(opt.epoch): print('-------------------------------------------------------') print('epoch: ', epoch) metrics, total_loss = train_test(model, train_data, test_data) for K in top_K: metrics['hit%d' % K] = np.mean(metrics['hit%d' % K]) * 100 metrics['mrr%d' % K] = np.mean(metrics['mrr%d' % K]) * 100 if best_results['metric%d' % K][0] < metrics['hit%d' % K]: best_results['metric%d' % K][0] = metrics['hit%d' % K] best_results['epoch%d' % K][0] = epoch if best_results['metric%d' % K][1] < metrics['mrr%d' % K]: best_results['metric%d' % K][1] = metrics['mrr%d' % K] best_results['epoch%d' % K][1] = epoch print(metrics) for K in top_K: print( 'train_loss:\t%.4f\tRecall@%d: %.4f\tMRR%d: %.4f\tEpoch: %d, %d' % (total_loss, K, best_results['metric%d' % K][0], K, best_results['metric%d' % K][1], best_results['epoch%d' % K][0], best_results['epoch%d' % K][1]))
def __init__(self, dev, title='FW upgrade'): data = Data() data.dev = dev data.buttons = OD() self.txcrc32 = True self.add_tx_cmds(data, txcrc32=self.txcrc32) Control.__init__(self, data, dev, title=title) data.cmds['send'].w.configure(text='Start upgrade') self.fileext = 'bin' self.filemode = 'rb' self.io_start = lambda *args: asyncio. async (self.io.start())
def __init__(self, dev, title='FW upgrade'): data = Data() data.dev = dev data.buttons = OD() self.txcrc32 = True self.add_tx_cmds(data, txcrc32=self.txcrc32) Control.__init__(self, data, dev, title=title) data.cmds['send'].w.configure(text='Start upgrade') self.fileext = 'bin' self.filemode = 'rb' self.io_start = lambda *args: asyncio.async(self.io.start())
def get_ctrl(dev): data = Data(name='atten', send=True, io_cb=util_io_cb) cmd_cb = lambda dev, cmd, val: spi_efc_cmd_cb( dev, cmd, val, cpha='0', cpol='0') data.add('atten', label='Attenuation, dB', wdgt='spin', text='0', value=Data.spn(-13.5, 18, 0.5), fmt_cb=fmt_cb, cmd_cb=cmd_cb) return data
def get_mntr(dev): mntr = Data(io_cb=dev_io_cb) mntr.add_page('mntr', send=True) mntr.add('synth1', wdgt='alarm', trace_cb=alarm_trace_cb, fmt_cb=synth_fmt_cb, msg='Synthesizer 1') mntr.add('synth2', wdgt='alarm', trace_cb=alarm_trace_cb, fmt_cb=synth_fmt_cb, msg='Synthesizer 2') mntr.add('uout1', wdgt='entry', state='readonly', msg='Uout1, V') mntr.add('uout2', wdgt='entry', state='readonly', msg='Uout2, V') mntr.add('uout3', wdgt='entry', state='readonly', msg='abs(Uout1-Uout2), V') return mntr
def get_ctrl(dev): data = Data(name='ctrl', io_cb=lambda d, c: util_io_cb(d, c, prefix='ALT')) data.add('pio', label='PIO', wdgt='spin', value={ 'min': 0, 'max': 0xFF, 'step': 1 }, cmd_cb=alt_cmd_cb, send=True) return data
def get_mntr(dev): mntr = Data(name='mntr', send=True, io_cb=dev_io_cb) #mntr.add('temp', wdgt='entry', msg='Temperature') #am('dma0', 'DMA0') #am('dma1', 'DMA1') #am('dma2', 'DMA2') #am('dma3', 'DMA3') avti=lambda k,msg,i,send=False: mntr.add(k,wdgt='alarm',cmd='vtune',send=send,msg=msg,fmt_cb=lambda val,read: vtune_fmt_cb(val,read,i),trace_cb=alarm_trace_cb) avti('txvtuneh', 'TX VTUNE_H', 0, True) avti('txvtunel', 'TX VTUNE_L', 1) avti('rxvtuneh', 'TX VTUNE_H', 2) avti('rxvtunel', 'TX VTUNE_L', 3) return mntr
def get_num_col_index(self): '''doc''' if self.num_col_index is not None: return self.num_col_index max_col = self.get_max_col() max_row = self.get_max_row() num_col_count = 0 num_col_index = 0 for col_index in range(1, max_col + 1): num_cell_count = 0 is_str_cell = False for row_index in range(1, max_row + 1): cell = self.get_cell(row_index, col_index) float_val = cell.get_float_val() if isinstance(float_val, float): num_cell_count += 1 continue str_val = cell.get_str_val() if isinstance(str_val, str): is_str_cell = True break if is_str_cell: continue if num_cell_count >= 1: num_col_count += 1 num_col_index = col_index data = Data() if num_col_count == 0: data.set("ERR", True) data.set("ERR_MSG", "没有数字列") return None if num_col_count > 1: data.set("ERR", True) data.set("ERR_MSG", "有%d列是数字" % num_col_count) return None if num_col_count == 1: self.num_col_index = num_col_index return self.num_col_index
def get_ctrl(dev): data = Data(name='atten', send=True, buttons=OD([('Write', write_cb)]), io_cb=util_io_cb) cmd_cb = lambda dev, cmd, val: spi_efc_cmd_cb( dev, cmd, val, ncpha='1', cpol='0') data.add('atten', label='Attenuation, dB', wdgt='spin', value=Data.spn(0, 31.5, .5), fmt_cb=fmt_cb, cmd_cb=cmd_cb) return data
def get_mntr(self): data = Data(name='Monitor') data.add('az', label='Azimuth', wdgt='entry', state='readonly', send=True, cmd_cb=polus_cmd_cb) data.add('el', label='Elevation', wdgt='entry', state='readonly', send=True, cmd_cb=polus_cmd_cb) def add_alarm(k, bit, msg, cmd_cb=None): data.add(k, wdgt='alarm', send=True if cmd_cb else False, cmd_cb=cmd_cb, fmt_cb=lambda val, read: alarm_fmt_cb(val, read, bit), msg=msg, trace_cb=alarm_trace_cb) add_alarm('az+', 0, 'az+', cmd_cb=lambda *args: 'POLUS.status') add_alarm('az-', 1, 'az-') #add_alarm('limaz+', 4, 'limaz+') #add_alarm('limaz-', 5, 'limaz-') add_alarm('el+', 2, 'el+') add_alarm('el-', 3, 'el-') #add_alarm('limel+', 6, 'limel+') #add_alarm('limel-', 7, 'limel-') return data
def init_common_layout(self): self.add_menu_file(file_save=False) self.menu_bank = self.add_menu_bank() self.fl = tk.Frame(self.frame) self.fl.pack(fill=tk.BOTH, expand=1, side=tk.LEFT) self.fr = tk.Frame(self.frame) self.fr.pack(fill=tk.BOTH, expand=0, side=tk.RIGHT) self.pdata = Data() self.ptabs = ttk.Notebook(self.fl) self.ptabs.pack(fill=tk.BOTH, expand=1, padx=5, pady=5) self.pdata.bind_tab_cb(self.ptabs, self.plot_update) self.tabs = ttk.Notebook(self.fr) self.tabs.pack(fill=tk.BOTH, expand=1, padx=5, pady=5) self.bank_add() self.data.bind_tab_cb(self.tabs, self.plot_update)
def __init__(self, dev): data = Data() Control.__init__(self, data=data, dev=dev, title='Pcl edit') io.BytesIO.__init__(self) self.io_start = lambda *args: asyncio. async (self.io.start()) self.fileext = 'pcl' self.filemode = 'r'
def get_ctrl(dev): spn_max, spn_step = 2.5, 0.05 if dev['type'] == 'AD5620_2_5V': spn_max = 5 data = Data(name='Voltage', send=True, io_cb=util_io_cb) fmt_cb = lambda val, read, spn_max=spn_max: float_fmt_cb( val, read, spn_max) cmd_cb = lambda dev, cmd, val: spi_efc_cmd_cb( dev, cmd, val, ncpha='0', cpol='0') data.add('out', label='OUT, V', wdgt='spin', value=Data.spn(0, spn_max, spn_step), fmt_cb=fmt_cb, cmd_cb=cmd_cb) return data
def get_ctrl(dev): ctrl = Data(io_cb=dev_serial_io_cb, send=True, name='ctrl') ctrl.add('tx', label='Mute/unmute tx', wdgt='combo', state='readonly', value=OD([('ON', '1'), ('OFF', '0')])) ctrl.add('gain', label='Gain', wdgt='entry') ctrl.add('atten', label='Attenuation', wdgt='entry') return ctrl
def get_mntr(dev): mntr = Data(io_cb=dev_io_cb) mntr.add_page('mntr', send=True) mntr.add('synth', wdgt='alarm', trace_cb=alarm_trace_cb, fmt_cb=synth_fmt_cb, msg='Synthesizer status') mntr.add('uout', wdgt='entry', state='readonly', msg='Uout, V') return mntr
def get_ctrl(dev): ctrl_buttons = OD([('Reset', reset_cb), ('Write', write_cb)]) data = Data(buttons=ctrl_buttons, io_cb=dev_io_cb) data.add_page('Generator', send=True) data.add('freq', label='Frequency, MHz', wdgt='spin', value={'min':0.1, 'max':12400, 'step':0.1}, text='1451') data.add('amp', label='Amplitude, dBm', wdgt='spin', value={'min':-40, 'max':-6, 'step':0.5}, text='-40') return data
def get_mntr(dev): mntr = Data(io_cb=CDM570.cmd_io_cb, send=True) mntr.add_page('mntr0') aa = lambda k, send, msg, fltn: mntr.add(k, wdgt='alarm', send=send, msg=msg, cmd='FLT', fmt_cb=lambda val,read=True: flt_fmt_cb(val, read, fltn=fltn), trace_cb=alarm_trace_cb) aa('FLT0', True, 'Unit fault', 0) aa('FLT1', False, 'Slot 1', 1) aa('FLT2', False, 'Slot 2', 2) aa('FLT3', False, 'Slot 3', 3) aa('FLT4', False, 'Slot 4', 4) mntr.add('TMP', wdgt='entry', msg='Temperature') if dev['devdata'] == 'mod': return mntr if dev['devdata'] == 'demod': mntr1 = CDM570.get_mntr(dev) mntr.add_page(name=mntr1[1].name, cmds=mntr1[1]) return mntr
def get_mntr(dev): mntr = Data(name='mntr', send=True, io_cb=dev_io_cb) #mntr.add('temp', wdgt='entry', msg='Temperature') #am('dma0', 'DMA0') #am('dma1', 'DMA1') #am('dma2', 'DMA2') #am('dma3', 'DMA3') avti = lambda k, msg, i, send=False: mntr.add(k, wdgt='alarm', cmd='vtune', send=send, msg=msg, fmt_cb=lambda val, read: vtune_fmt_cb(val, read, i), trace_cb=alarm_trace_cb) avti('txvtuneh', 'TX VTUNE_H', 0, True) avti('txvtunel', 'TX VTUNE_L', 1) avti('rxvtuneh', 'TX VTUNE_H', 2) avti('rxvtunel', 'TX VTUNE_L', 3) return mntr
def add_memory_cb(self): mem = Data(name='mem') mem.add('name', label='Name', wdgt='entry', text='new') mem.add('addr', label='Start address', wdgt='entry', text='00000000') mem.add('sz', label='Size in bytes', wdgt='entry', text='4') dlg = Control(data=mem, parent=self.root, title='Add memory', pady=5) dlg.add_buttons_ok_cancel() dlg.do_modal() if not hasattr(dlg, 'kw'): return if len(dlg.kw.keys()) == 0: return self.add_memory(dlg.kw['name'], dlg.kw['addr'], dlg.kw['sz'])
def get_ctrl(dev): ctrl = Data(name='Settings', send=True, io_cb=dev_io_cb) ctrl.add('channel', label='Channel selection', wdgt='radio', value=OD([('Channel A', '1'), ('Channel B', '0')])) ctrl.add_page('System') ctrl.add('commit', label='EFC commit enable', wdgt='combo', state='readonly', value=['ON', 'OFF'], text='ON') return ctrl
def get_mntr(dev): data = Data('mntra', send=True, io_cb=dev_serial_io_cb) for ch in range(1, 9): data.add('a%d'%ch,cmd='fetch',wdgt='alarm',msg='CH%d'%ch,fmt_cb=lambda val,read,c=ch:fmt_cb1(val,read,c),send=(ch==1),trace_cb=alarm_trace_cb) data.add_page('mntre', send=True) for ch in range(1, 9): v = data.add('CH%d'%ch, wdgt='entry', label='CH%d'%ch, msg='CH%d'%ch) data.cmds.columns = 4 return data
def prelabel_data(self, data): if data.y.shape[1] is None: label_shape = tuple(data.U.shape[0]) else: label_shape = (data.U.shape[0], data.y.shape[1]) pseudo_labels = self.unlabeled * np.ones(label_shape, dtype=float) assert (data.X.shape[0] == data.y.shape[0]) assert (data.X.shape[1] == data.U.shape[1]) assert (data.y.shape[1] == pseudo_labels.shape[1]) X = np.append(data.X, data.U, axis=0) y = np.append(data.y, pseudo_labels, axis=0) return Data(X, y, None)
def __init__(self, dev=None, parent=None, title='Screenshot', get_data=None, iw=480, ih=234): data = Data() self.fileext = 'bmp' self.get_data = get_data self.iw = iw self.ih = ih self.isz = self.iw * self.ih self.z = 1 Control.__init__(self, data=data, dev=dev, parent=parent, title=title)
def get_mntr(dev): mntr = Data('mntr', send=True, io_cb=dev_serial_io_cb) mntr.add('pwr', wdgt='entry', state='readonly', msg='current power reading (in dBm)') mntr.add('temp', wdgt='entry', state='readonly', msg='current temperature reading') return mntr
def __init__(self, dev, title='File IO'): data = Data() data.dev = dev data.buttons = OD() #data.buttons['TX stop'] = self.dma_stop_cb self.add_tx_cmds(data, txcrc32=False) data.add('txstop', wdgt='button', text='TX stop', click_cb=self.dma_stop_cb) self.add_rx_cmds(data) Control.__init__(self, data, dev, title=title) self.fileext = 'pcm' self.center()
def get_ctrl(dev): gnsw_list = ['6dB', '12dB'] gnsw_fmt_cb = lambda val, read=True: gpio_list_fmt_cb(val, read, gnsw_list, 0) gnsw_cmd_cb = lambda dev, cmd, val: gpio_cmd_cb(dev, cmd, val, 0) ofds_list = ['Enable', 'Disable'] ofds_fmt_cb = lambda val, read=True: gpio_list_fmt_cb(val, read, ofds_list, 1) ofds_cmd_cb = lambda dev, cmd, val: gpio_cmd_cb(dev, cmd, val, 1) lpf_cmd_cb = lambda dev, cmd, val: spi_efc_cmd_cb(dev, cmd, val, ncpha='1', cpol='1') data = Data(name='LPF', send=True, io_cb=util_io_cb) data.add('gnsw', label='Gain switch', wdgt='radio', value=gnsw_list, fmt_cb=gnsw_fmt_cb, cmd_cb=gnsw_cmd_cb) data.add('ofds', label='Offset correction loop', wdgt='radio', value=ofds_list, fmt_cb=ofds_fmt_cb, cmd_cb=ofds_cmd_cb) data.add('lpf', label='LPF, MHz', wdgt='spin', value={'min':1, 'max':30, 'step':1}, fmt_cb=lpf_fmt_cb, cmd_cb=lpf_cmd_cb) return data
def get_mntr(dev): mntr = Data(io_cb=dev_io_cb, send=True) dd = 'devdata' def add_channel(data, ch): cmd_cb = lambda dev, cmd, val, c=ch: mntr_cmd_cb(dev, cmd, val, ch=c) mntr.add_page('%s.vpp' % ch) mntr.add('PKPK', wdgt='entry', msg='Vpp', cmd_cb=cmd_cb, fmt_cb=mntr_fmt_cb) mntr.add_page('%s.etc' % ch) mntr.add('MAX', label='Vmax', wdgt='entry', msg='Vmax', cmd_cb=cmd_cb, fmt_cb=mntr_fmt_cb) mntr.add('MIN', label='Vmin', wdgt='entry', msg='Vmin', cmd_cb=cmd_cb, fmt_cb=mntr_fmt_cb) mntr.add('PER', label='Period', wdgt='entry', msg='Period', cmd_cb=cmd_cb, fmt_cb=mntr_fmt_cb2) mntr.add('FREQ', label='Frequency', wdgt='entry', msg='Frequency', cmd_cb=cmd_cb, fmt_cb=mntr_fmt_cb2) if dd in dev: ch = dev[dd] add_channel(mntr, ch) else: for ch in ['C1', 'C2', 'C3', 'C4']: add_channel(mntr, ch) return mntr
def get_mntr(dev): data = Data('mntra', send=True, io_cb=dev_serial_io_cb) for ch in range(1, 9): data.add('a%d' % ch, cmd='fetch', wdgt='alarm', msg='CH%d' % ch, fmt_cb=lambda val, read, c=ch: fmt_cb1(val, read, c), send=(ch == 1), trace_cb=alarm_trace_cb) data.add_page('mntre', send=True) for ch in range(1, 9): v = data.add('CH%d' % ch, wdgt='entry', label='CH%d' % ch, msg='CH%d' % ch) data.cmds.columns = 4 return data
def get_ctrl(dev): gnsw_list = ['6dB', '12dB'] gnsw_fmt_cb = lambda val, read=True: gpio_list_fmt_cb( val, read, gnsw_list, 0) gnsw_cmd_cb = lambda dev, cmd, val: gpio_cmd_cb(dev, cmd, val, 0) ofds_list = ['Enable', 'Disable'] ofds_fmt_cb = lambda val, read=True: gpio_list_fmt_cb( val, read, ofds_list, 1) ofds_cmd_cb = lambda dev, cmd, val: gpio_cmd_cb(dev, cmd, val, 1) lpf_cmd_cb = lambda dev, cmd, val: spi_efc_cmd_cb( dev, cmd, val, ncpha='1', cpol='1') data = Data(name='LPF', send=True, io_cb=util_io_cb) data.add('gnsw', label='Gain switch', wdgt='radio', value=gnsw_list, fmt_cb=gnsw_fmt_cb, cmd_cb=gnsw_cmd_cb) data.add('ofds', label='Offset correction loop', wdgt='radio', value=ofds_list, fmt_cb=ofds_fmt_cb, cmd_cb=ofds_cmd_cb) data.add('lpf', label='LPF, MHz', wdgt='spin', value={ 'min': 1, 'max': 30, 'step': 1 }, fmt_cb=lpf_fmt_cb, cmd_cb=lpf_cmd_cb) return data
def get_ctrl(dev): ctrl_buttons = OD([('Reset', reset_cb), ('Write', write_cb)]) data = Data(buttons=ctrl_buttons, io_cb=dev_io_cb) data.add_page('Generator', send=True) data.add('freq', label='Frequency, MHz', wdgt='spin', value={ 'min': 0.1, 'max': 12400, 'step': 0.1 }, text='1451') data.add('amp', label='Amplitude, dBm', wdgt='spin', value={ 'min': -40, 'max': -6, 'step': 0.5 }, text='-40') return data
def fircalc_cb1(self): cmd = 'read' if self.read else 'write' bdata = self.bank_data() tdata = Data() tdata.add_page('taps', cmds=OD((k, bdata.cmds[k]) for k in ['ntaps', 'nbits'])) tdata.add('nbank', label='bank #', wdgt='combo', state='readonly', text='0', value=['0', '1']) dlg = Control(data=tdata, parent=self.root, title='%s taps' % cmd) dlg.add_buttons_ok_cancel() dlg.center() dlg.do_modal() if not hasattr(dlg, 'kw'): return ntaps = dlg.kw['ntaps'] self.nbits = int(dlg.kw['nbits']) nbank = int(dlg.kw['nbank']) n = ceil(int(ntaps) / 2) offset = n if nbank else 0 dev = self.data.dev if self.read: self.taps = [] for i in range(0, n): self.qo.put('tap ALT.firii %s %s %d' % (dev['ip_addr'], dev['altname'], i + offset)) else: taps = self.get_taps_fmt(fmt=self.nbits) taps[n:] = [] for i in range(0, n): self.qo.put( 'tap ALT.firii %s %s %d %s' % (dev['ip_addr'], dev['altname'], i + offset, taps[i])) self.pb['maximum'] = self.qo.qsize() return True
def get_ctrl(dev): ctrl = Data(name='CH1', send=True, io_cb=dev_io_cb) ctrl.add('freq', label='Frequency, MHz', wdgt='spin', value=Data.spn(1350, 1750, 0.01)) ctrl.add('rfgain', label='RF Gain, dB', wdgt='spin', value=Data.spn(0, 31.5, 0.5)) ctrl.add('bbgain', label='BB Gain, dB', wdgt='spin', value=Data.spn(0, 50, 0.1)) ctrl.add('lpf', label='Filter, MHz', wdgt='combo', state='readonly', value=['2', '4', '10', '20'], text='10') ctrl.add('commit', label='EFC commit enable', wdgt='combo', state='readonly', value=['ON', 'OFF'], text='ON') return ctrl
def get_ctrl(dev): ctrl = Data(name='Settings', send=True, io_cb=dev_io_cb) ctrl.add('agc_en', label='AGC Enable', wdgt='radio', value=OD([('ON', '1'), ('OFF', '0')])) ctrl.add('agc_lvl', label='AGC Level', wdgt='spin', value=Data.spn(0, 2.5, 0.1)) ctrl.add('bpf', label='Band Pass Filter', wdgt='combo', state='readonly', value=OD([('11MHz', '0'), ('5.5MHz', '2'), ('250kHz', '3')])) ctrl.add('bas', label='BAS output', wdgt='radio', value=OD([('Ch1 (sig)', '0'), ('Ch3 (br)', '1')])) ctrl.add('test', label='TEST output', wdgt='combo', state='readonly', value=OD([('Synth1(835-1140,1MHz)', '3'), ('Synth2(150,7MHz)', '1'), ('Synth3(1125-1140,1MHz)', '0'), ('XTAL(26MHz)', '2')])) ctrl.add('freq', label='Channel1 freq', wdgt='spin', value=Data.spn(975, 1000, 0.01), cmd_cb=freq_cmd_cb) ctrl.add('inv', label='Channel1 inv', wdgt='check', fmt_cb=inv_fmt_cb, trace_cb=inv_trace_cb) ctrl.add('gain', label='Channel1 gain', wdgt='spin', value=Data.spn(19, 65, 0.5)) ctrl.add('freqbr', label='Channel3(br) freq', wdgt='spin', value=Data.spn(975, 1000.1, 0.01)) ctrl.add('gainbr', label='Channel3(br) gain', wdgt='spin', value=Data.spn(29.5, 77.5, 0.5)) ctrl.add('thrs1', label='Threshold1', wdgt='spin', value=Data.spn(0, 200, 1)) ctrl.add('thrs2', label='Threshold2', wdgt='spin', value=Data.spn(0, 200, 1)) ctrl.add('thrsb', label='Threshold (br)', wdgt='spin', value=Data.spn(0, 10, 0.1)) ctrl.add_page('System') ctrl.add('commit', label='EFC commit enable', wdgt='combo', state='readonly', value=['ON', 'OFF'], text='ON') return ctrl
def get_ctrl(dev): ctrl = Data(name='RF', send=True, io_cb=dev_io_cb) ctrl.add('freq', label='Frequency, MHz', wdgt='spin', value=Data.spn(356.25, 2850, 0.01)) ctrl.add('rfgain', label='RF Gain, dB', wdgt='spin', text='0.0', value=Data.spn(-13.5, 18, 0.5)) ctrl.add_page('BB') ctrl.add('bbgain', label='Analog Gain, dB', wdgt='spin', value=Data.spn(0, 64.5, 0.5)) get_lpf_ctrl(ctrl, 'bblpf') ctrl.add_page('DSP') ctrl.add('dsplpf', label='Filter, MHz', wdgt='combo', state='readonly', value=['10', '20'], text='10') ctrl.add_page('TEST') ctrl.add('test', label='Nothing', send=False) return ctrl
def get_mntr(dev): mntr = Data(io_cb=dev_io_cb) mntr.add_page('mntr', send=True) mntr.add('synth', wdgt='alarm', trace_cb=alarm_trace_cb, msg='Synthesizer status') mntr.add('uout', wdgt='entry', state='readonly', msg='Uout, V') mntr.add_page('mntr1', send=True) mntr.add('vcm1', label='VCM1', wdgt='entry', state='readonly', msg='VCM1') mntr.add('vcm2', label='VCM2', wdgt='entry', state='readonly', msg='VCM2') mntr.add('5v_1', label='5V_1', wdgt='entry', state='readonly', msg='5V_1') mntr.add('5v_2', label='5V_2', wdgt='entry', state='readonly', msg='5V_2') mntr.add('3v3_1', label='3V3_1', wdgt='entry', state='readonly', msg='3V3_1') mntr.add('3v3_2', label='3V3_2', wdgt='entry', state='readonly', msg='3V3_2') mntr.add('3v3_3', label='3V3_3', wdgt='entry', state='readonly', msg='3V3_3') mntr.add('14v', label='14V', wdgt='entry', state='readonly', msg='14V') mntr.cmds.columns=2 return mntr
def get_mntr(dev): mntr = Data(name='status', send=True, io_cb=dev_io_cb) mntr.add('status', wdgt='alarm', trace_cb=alarm_trace_cb, fmt_cb=status_fmt_cb, msg='Power supply') add_status = lambda n, msg: mntr.add('status%d' % n, wdgt='alarm', send=False, trace_cb=alarm_trace_cb, fmt_cb=lambda val, read: status_fmt_cb(val,read,n), msg=msg) add_status(1, 'Ch1 (sig)') add_status(2, 'Ch2') add_status(3, 'Ch3 (br)') add_status(4, '(RXL < Thrs1) || (RXL > Thrs2)') add_status(5, 'BRL < ThrsB') mntr.add_page('mntr') mntr.add('5_5v', wdgt='entry', label='5.5V', state='readonly', msg='5.5V') mntr.add('rxl', wdgt='entry', label='RXL', state='readonly', msg='RX signal level') mntr.add('brl', wdgt='entry', label='BRL', state='readonly', msg='Beacon signal level') mntr.cmds.columns = 3 return mntr
def get_ctrl(dev): data = Data(name='atten', send=True, buttons=OD([('Write', write_cb)]), io_cb=util_io_cb) cmd_cb = lambda dev, cmd, val: spi_efc_cmd_cb(dev, cmd, val, ncpha='1', cpol='0') data.add('atten', label='Attenuation, dB', wdgt='spin', value=Data.spn(0, 31.5, .5), fmt_cb=fmt_cb, cmd_cb=cmd_cb) return data
def get_ctrl(dev): ctrl = Data(name='CSP', send=True, io_cb=dev_io_cb) ctrl.add('modem1', label='Modem1 antenna', wdgt='combo', state='readonly', value=['Main', 'Reserve'], text='Main', fmt_cb=csp_fmt_cb) ctrl.add('modem2', label='Modem2 antenna', wdgt='combo', state='readonly', value=['Main', 'Reserve'], text='Main', fmt_cb=csp_fmt_cb) return ctrl
def get_mntr(dev, cc=None): mntr = Data(io_cb=lambda d,c,v=None: 'QD2048.cmd %s %s %s' % (d['serial'], d['addr'], c)) mntr.add_page('mntr0') aa = lambda k, send, msg: mntr.add(k, wdgt='alarm', send=send, msg=msg, cmd='FLT', fmt_cb=flt_fmt_cb) aa('CD', True, 'CD') aa('DEC', True, 'DEC') aa('RSYNTH', True, 'RSYNTH') mntr.add('EBNO', wdgt='entry', state='readonly', pack_forget=True, msg='Eb/No') mntr.add('BER', wdgt='entry', state='readonly', pack_forget=True, msg='BER') mntr.add_page('mntr1') mntr.add('EBNO', wdgt='entry', state='readonly', label='Eb/No') mntr.add('BER', wdgt='entry', state='readonly', label='BER') mntr.add('AGC', wdgt='entry', state='readonly', label='AGC') mntr.add('ROFFSET', wdgt='entry', state='readonly', label='ROFFSET') mntr.cmds.columns=2 return mntr
def get_mntr(dev): data = Data('mntr', send=True, io_cb=dev_serial_io_cb) data.add('fetch', wdgt='entry', msg='FETCh?', width=10, fmt_cb=fmt_cb) data.add('diff', wdgt='entry', msg='diff', width=10, fmt_cb=fmt_cb) return data
def get_ctrl(dev): data = Data('TestControl', send=True, io_cb=dev_io_cb) data.add('ctrl1', label='Test ctrl value1', wdgt='spin', value={'min':0, 'max':50, 'step':0.001}, text='7') data.add('ctrl2', label='Test ctrl value2', wdgt='spin', value={'min':0, 'max':50, 'step':0.001}, text='15') return data
def get_ctrl(dev): data = Data(name='atten', send=True, io_cb=util_io_cb) cmd_cb = lambda dev, cmd, val: spi_efc_cmd_cb(dev, cmd, val, cpha='0', cpol='0') data.add('atten', label='Attenuation, dB', wdgt='spin', text='0', value=Data.spn(-13.5, 18, 0.5), fmt_cb=fmt_cb, cmd_cb=cmd_cb) return data
def get_ctrl(dev): ctrl_buttons = OD([('Reset', reset_cb), ('Read', read_cb), ('Write', write_cb)]) data = Data(buttons=ctrl_buttons, io_cb=dev_io_cb) data.add_page('Mode', send=True) data.add('COMMON', label='Mode', wdgt='combo', state='readonly', value=['INDEPENDENT', 'PARALLEL', 'SERIES', 'DOUBLE'], fmt_cb=common_fmt_cb) data.add_page('Independent', send=True) data.add('SCH1V', label='Channel1, V', wdgt='spin', value=Data.spn(0,30,.01), fmt_cb=odp_fmt_cb) data.add('SCH1C', label='Channel1, A', wdgt='spin', value=Data.spn(0,3,.01), fmt_cb=odp_fmt_cb) data.add('SW1', label='Output1 enable', wdgt='combo', state='readonly', value=OD([('ON','0'), ('OFF','1')])) data.add('SCH2V', label='Channel2, V', wdgt='spin', value=Data.spn(0,30,.01), fmt_cb=odp_fmt_cb) data.add('SCH2C', label='Channel2, A', wdgt='spin', value=Data.spn(0,3,.01), fmt_cb=odp_fmt_cb) data.add('SW2', label='Output2 enable', wdgt='combo', state='readonly', value=OD([('ON','0'), ('OFF','1')])) data.add_page('Parallel', send=True) data.add('SPARAV', label='Output, V', wdgt='spin', value=Data.spn(0,30,.01), fmt_cb=odp_fmt_cb) data.add('SPARAC', label='Output, A', wdgt='spin', value=Data.spn(0,6,.01), fmt_cb=odp_fmt_cb) data.add('SW1', label='Output enable', wdgt='combo', state='readonly', value=OD([('ON','0'), ('OFF','1')])) data.add_page('Series', send=True) data.add('SSERIV', label='Output, V', wdgt='spin', value=Data.spn(0,60,.01), fmt_cb=odp_fmt_cb) data.add('SSERIC', label='Output, A', wdgt='spin', value=Data.spn(0,3,.01), fmt_cb=odp_fmt_cb) data.add('SW1', label='Output enable', wdgt='combo', state='readonly', value=OD([('ON','0'), ('OFF','1')])) data.add_page('PlusMinus', send=True) data.add('SDUAL1V', label='Output1, V', wdgt='spin', value=Data.spn(0,30,.01), fmt_cb=odp_fmt_cb) data.add('SDUAL1C', label='Output1, A', wdgt='spin', value=Data.spn(0,3,.01), fmt_cb=odp_fmt_cb) data.add('SDUAL2V', label='Output2, V', wdgt='spin', value=Data.spn(0,30,.01), fmt_cb=odp_fmt_cb) data.add('SDUAL2C', label='Output2, A', wdgt='spin', value=Data.spn(0,3,.01), fmt_cb=odp_fmt_cb) data.add('SW1', label='Output enable', wdgt='combo', state='readonly', value=OD([('ON','0'), ('OFF','1')])) return data
def get_mntr(dev): data = Data(name='mntr', io_cb=lambda d,c: util_io_cb(d,c,prefix='ALT')) data.add('pio', label='IN', wdgt='entry', state='readonly', cmd_cb=alt_cmd_cb, send=True) return data
def get_mntr(dev): data = Data('TestMonitor', send=True, io_cb=dev_io_cb) data.add('mntr1', wdgt='entry', msg='Test mntr value1', width=20) data.add('mntr2', wdgt='entry', msg='Test mntr value2', width=20) return data
def train(self, sess, X_train, Y_train, X_test, Y_test, num_epoch=1000): sess.run(self.init_op) # 随机生成器需要fit总体样本数据 datagen = util.get_generator() saver = tf.train.Saver() # 因为datagen的特殊需求(bacthsize需要能够整除训练集总个数,并且这里样本也少,直接全体当batchsize) split = 500 batch_size = int(len(X_train) / split) #取split使得尽量为200左右 if len( X_train ) % split != 0: #这里仅仅是因为图片生成那里要求batchsize需要能够和输入数据个数 整除 所以如此做以确保这一点 remove = len(X_train) % split X_train = X_train[:-1 * remove] #如果后续数据多了大可以不必进行图片生成或者图片数据很多却依然做图片生成时则batch_size和这个可能需要再调整 Y_train = Y_train[:-1 * remove] print('batch_size:', batch_size) for e in range(num_epoch): yieldData = Data(X_train, Y_train) print('Epoch', e) batches = 0 if e != 0 and e % 5 == 0: saver.save(sess, 'savedmodel/' + str(e) + 'model') for x_batch, y_batch in datagen.flow(X_train, Y_train, batch_size=batch_size, save_to_dir=None): #print(x_batch[0]) #print(y_batch[0]) if batches % 100 == 0: print('batch: ', batches) '''训练集''' accuval, scoreval1, scoreval2, scoreval3, scoreval4, scoreval5, scoreval6, scoreval7, lengthval, proval = sess.run( [ self.accuracy, self.score1, self.score2, self.score3, self.score4, self.score5, self.score6, self.score7, self.length, self.probabi ], feed_dict={ self.X: x_batch, self.keep_prob: 1, self.y: y_batch }) print("Train accuracy:", accuval) if batches == split: print('train') predictions = self.makeprint(scoreval1, scoreval2, scoreval3, scoreval4, scoreval5, scoreval6, scoreval7, lengthval, proval) a = sess.run(predictions) print(a.shape) print(a) print(y_batch) '''测试集''' yieldTest = Data(X_test, Y_test) tmp = 0 for b_test_x, b_test_y in yieldTest.get_next_batch(1000): accuval, scoreval1, scoreval2, scoreval3, scoreval4, scoreval5, scoreval6, scoreval7, lengthval, proval = sess.run( [ self.accuracy, self.score1, self.score2, self.score3, self.score4, self.score5, self.score6, self.score7, self.length, self.probabi ], feed_dict={ self.X: b_test_x, self.keep_prob: 1, self.y: b_test_y }) tmp = tmp + accuval if batches == split: print('test') predictions = self.makeprint( scoreval1, scoreval2, scoreval3, scoreval4, scoreval5, scoreval6, scoreval7, lengthval, proval) a = sess.run(predictions) #print(a.shape) #print(a) #print(b_test_y) print("Test accuracy:", tmp / 5) if batches == split: batches = 0 break if batches <= split: _, lossval = sess.run( [self.train_op, self.loss], feed_dict={ self.X: x_batch, self.keep_prob: self.keep_prob_train, self.y: y_batch }) if batches % 25 == 0: print("loss:", lossval) batches += 1 #使用原始数据进行迭代 for i in xrange(1): for batch_X, batch_Y in yieldData.get_next_batch(batch_size): lossval, scoreval = sess.run( [self.train_op, self.loss], feed_dict={ self.X: batch_X, self.keep_prob: self.keep_prob_train, self.y: batch_Y })
def bank_data(self): data = Data(name='Bank %d' % len(self.data)) data.add('R', label='(R) Decimation factor', wdgt='spin', text=100, value=Data.spn(1,127), trace_cb=self.Fo_upd_trace_cb) data.add('M', label='(M) Differential delay', wdgt='spin', text=1, value=Data.spn(1,127)) data.add('N', label='(N) Number of stages', wdgt='spin', text=5, value=Data.spn(1,127), msg='number of cascaded filters') data.add('Fs', label='Fs, MHz', wdgt='spin', text=5, value=Data.spn(1,100,.1), msg='Sampling freq in MHz before decimation', trace_cb=self.Fo_upd_trace_cb) data.add('Fc', label='Fc, kHz', wdgt='spin', text=1, value=Data.spn(1,1000,1), msg='Pass band edge in kHz', trace_cb=self.Fo_upd_trace_cb) data.add('Fo', label='Fo', wdgt='entry', state='readonly', msg='Fo = R*Fc/Fs; Normalized Cutoff freq; 0<Fo<=0.5/M') data.add('L', label='(L) Filter order', wdgt='spin', text=32, value=Data.spn(2,128,2), msg='Filter order; must be even') data.add('fmt', label='format', wdgt='combo', state='readonly', text='double', value=['double', 'int'], trace_cb=lambda *args: self.bank_update()) data.add('nbits', label='# of bits', wdgt='spin', value=Data.spn(4, 16), text='8', trace_cb=lambda *args: self.bank_update()) self.Fo_upd_trace_cb('R', data) if len(self.data): data.cmds['fmt'].text = self.data.get_value('fmt') data.cmds['nbits'].text = self.data.get_value('nbits') data.cmds['ntaps'].text = self.data.get_value('ntaps') return data