def import_mp_votes(subset=False): if MPVote.all().count() > 0: print "Import already complete" return subset_const = [ "Brighton, Kemptown", "Brighton, Pavillion", "Hove", "Hackney South and Shoreditch", "Edinburgh North, and Leith" ] subset_mp = [ "Caroline Lucas", "Simon Kirby", "Mike Weatherley", "Meg Hillier", "Mark Lazarowicz" ] question_list = {} csvfile = open('fixtures/mp_votes/vote_questions.csv', 'rU') for row in csv.reader(csvfile): d = Question() d.question = row[0] d.title = row[1] d.date = datetime.datetime.now() d.publicwhip_url = row[3] d.put() question_list[row[4]] = d mps_created = [] consts_created = [] for question in question_list: print question csvfile = open('fixtures/mp_votes/%s.csv' % question, 'rU') for row in csv.reader(csvfile): if subset and row[1] not in subset_const and row[0] not in subset_mp: continue try: v = MPVote(parent=question_list[question]) v.question = str(question_list[question].key()) v.mp_name = row[0] v.mp_slug = slugify(row[0]) v.mp_constituency = row[1] v.mp_party = normalise_party(row[2]).lower() v.selection = normalise_selection(row[3]) v.mp_whilst = get_whilst(row[2]) v.put() if v.mp_slug not in mps_created: mp = MP() mp.slug = v.mp_slug mp.name = v.mp_name mp.constituency = v.mp_constituency mp.party = v.mp_party mp.put() mps_created.append(v.mp_slug) if v.mp_constituency not in consts_created: const = Constituency() const.name = v.mp_constituency const.slug = slugify(v.mp_constituency) const.mp_name = v.mp_name const.mp_party = v.mp_party const.put() consts_created.append(v.mp_constituency) except: print "Failed insert"
shuffidx) # randomly choose partition of data into test / fold for fold in range(10): print('> fold ', fold) test_bottom = fold * test_size test_top = (1 + fold) * test_size test_indices = shuffidx[test_bottom:test_top] train_indices = shuffidx[0:test_bottom] + shuffidx[test_top:] loss_func = [] bfs_params = [] test_loss = [] torch.set_rng_state(rng_state) #fix init state torch.manual_seed(0) pht = MP(rbf=bfs, filtername='f') optimizer_filter = optim.SGD([{'params': pht.rbfweights}], lr=lr) for epoch in range(max_epoch): pht.train() np.random.shuffle(train_indices) lss = 0 for b in range(train_batches): bfs_params.append(pht.rbfweights.detach().clone().numpy()) pht.train() train_indices_batch = train_indices[b * batch_size:(b + 1) * batch_size] optimizer_filter.zero_grad()