예제 #1
0
    def _init_hashtables(self):
        """ Initialize the hash tables such that each record will be in the
        form of "[storage1, storage2, ...]" """

        self.hash_tables = [
            storage(self.storage_config, i) for i in range(self.num_hashtables)
        ]
 def __init__(self, params):
     print 'initializing......'
     self.params = params
     self.sess = tf.Session()
     self.storage = storage(self.params['db_size'],
                            self.params['input_dims_proc'])
     self.engine = emulator(rom_name='breakout.bin', vis=True)
     self.params['num_act'] = len(self.engine.legal_actions)
     self.build_nets()
     self.Q_global = 0
     self.cost_disp = 0
예제 #3
0
def test(epoch):
    global best_acc
    net.eval()
    test_loss = 0
    correct = 0
    total = 0
    with torch.no_grad():
        for batch_idx, (inputs, targets) in enumerate(testloader):
            inputs, targets = inputs.to(device), targets.to(device)
            outputs, sec_out, sec_in = net(inputs)
            loss = criterion(outputs, targets)

            test_loss += loss.item()
            _, predicted = outputs.max(1)
            total += targets.size(0)
            correct += predicted.eq(targets).sum().item()

            progress_bar(
                batch_idx, len(testloader),
                'Loss: %.3f | Acc: %.3f%% (%d/%d)' %
                (test_loss /
                 (batch_idx + 1), 100. * correct / total, correct, total))

    # Save checkpoint.
    acc = 100. * correct / total
    if acc > best_acc:
        print('Saving..')
        state = {
            'net': net.state_dict(),
            'acc': acc,
            'epoch': epoch,
        }
        if not os.path.isdir('checkpoint'):
            os.mkdir('checkpoint')
        torch.save(state, './checkpoint/ckpt.t7')
        best_acc = acc
        if acc > 50:
            all_train_loader = chain(trainloader, extraloader)
            storage(all_train_loader, 'train')
            storage(testloader, 'test')
예제 #4
0
def pic_info():
    """图片上传"""

    user = g.user
    print(user, "图片上传")
    if request.method == "GET":
        if not user:
            return redirect('/')
        data = {'user_info': user.to_dict() if user else None}
        return render_template('news/user_pic_info.html', data=data)
    avatar = request.files.get('avatar')
    if not avatar:
        return jsonify(errno=RET.PARAMERR, errmsg='请传入图片')
    image = avatar.read()
    key = storage(image)
    if not key:
        return jsonify(errno=RET.THIRDERR, errmsg='第三方系统出现问题')
    user.avatar_url = key
    db.session.commit()
    data = {'avatar_url': QINIU_DOMIN_PREFIX + key}
    return jsonify(errno=RET.OK, errmsg='设置成功', data=data)
예제 #5
0
    def __init__(self):
        solarData = np.empty(0)
        reactorData = np.empty(0)
        
        hotT = 863
        coldT = 563
        
        # import solar and reactor mass flow rate data
        with open('SolarNew.csv', newline='') as Solar:
            reader = csv.DictReader(Solar)
            for row in reader:
                solarData = np.append(solarData, row)
                
        with open('ReactorNew.csv', newline='') as Reactor:
            reader = csv.DictReader(Reactor)
            for row in reader:
                reactorData = np.append(reactorData, row)
        
        # set steam generator mass flow rate
        m_SteamGen = 1500
        
        # creat array to hold stored energy amounts
        energy = np.array([])
        
        # assume thermocline is initially in average position
        thermocline_position = 5
        
        # loop through 7 days, with 144 10 min intervals per day
        k=0
        for j in range(7):
            for i in range(1440):
                solar = solarData[i]        
                m_Solar = float(solar['Mass flow rate'])
                
                reactor = reactorData[i]        
                m_Reactor = float(reactor['Mass flow rate'])
                
                m_HOT = m_Solar + m_Reactor
                
                m_COLD = m_SteamGen
                print(m_HOT)
                
                TankStorage = storage(hotT, coldT, m_HOT, m_COLD, 30, 2.5, 0.026, thermocline_position=thermocline_position)
                
                if k % 500 == 0:
                    fig = plt.figure()
                    ax = fig.add_axes([0,0,1,1])
                    ax.bar(0, TankStorage.thermocline_location, 0.4, color='b')
                    ax.bar(0, TankStorage.thermocline_height, 0.4, bottom=TankStorage.thermocline_location, color='rebeccapurple')
                    ax.bar(0, 10-(TankStorage.thermocline_location+TankStorage.thermocline_height), 0.4,bottom=TankStorage.thermocline_location+TankStorage.thermocline_height, color='r')
                    ax.set_ylabel('Hot and Cold Storage')
                    ax.yaxis.set_major_formatter(mtick.PercentFormatter(10))
                    label1 = 'Day: '+str(j+1)
                    if i < 60:
                        label2 = 'Time: 12:'+str(i%60).zfill(2)+' AM'
                    elif 60 <= i < 720:
                        label2 = 'Time: '+str(int(i/60)).zfill(2)+':'+str(i%60).zfill(2)+' AM'
                    elif 720 <= i < 780:
                        label2 = 'Time: '+str(int(i/60)).zfill(2)+':'+str(i%60).zfill(2)+' AM'
                    else:
                        label2 = 'Time: '+str(int((i/60))-12).zfill(2)+':'+str(i%60).zfill(2)+' PM'
                    label3 = 'Stored Energy: ' + str(round(TankStorage.energy_stored)) +' MWh'
                    ax.set_xlabel(label1+'\n'+label2+'\n'+label3)
                    ax.set_title('Thermal Energy Storage Tank')
                    ax.set_xticks([])
                    ax.set_yticks([0,1,2,3,4,5,6,7,8,9,10])
                    filename = os.getcwd()+'\\graphs\\tank'+str(k)+'.png'
                    #plt.savefig(filename, dpi=250, bbox_inches='tight')
                    plt.show()
                
                energy = np.append(energy, TankStorage.energy_stored)
                thermocline_position = TankStorage.thermocline_location
                area = TankStorage.Area
                k+=1
        
        # Create .gif
        # frames = []
        # imgs = sorted(glob.glob('**/*.png', recursive=True), key=os.path.getmtime)
        # for i in imgs:
        #     nf = Image.open(i)
        #     frames.append(nf)
        
        # frames[0].save('tank.gif', format='GIF', append_images=frames[1:],save_all=True, duration=200, loop=0)
        
        # # Show stored energy graph        
        fig2 = plt.figure()
        ax = fig2.add_axes([0,0,1,1])
        ax.plot(np.arange(10080), energy)
        ax.set_xlabel('Time (hr)')
        ax.set_ylabel('Energy Stored (MWh)')
        ax.set_title('Energy Stored over 1 week')
        ax.set_xlim(left=0,right=10090)
        plt.savefig('exergy-1week.png', dpi=250, bbox_inches='tight')
        plt.show()

        # Energy Stored at 10 min intervals over 1 week:
        self.StoredEnergy = energy
        self.hotT = hotT
        self.coldT = coldT
        self.massflowrate = m_SteamGen