云计算任务调度仿真03

前面陆续分享了基于policy gradient和DQN实现的深度强化学习任务调度仿真,上次的DQN没有实现fix-qtarget和experience replay,这次再分享实现了这两个方法的DQN任务调度仿真。
经验重放,定义存储和存放次序,这里也可以自行修改

    def store_transition(self, s, a, r, s_):#经验重放one_hot_action = np.zeros(self.n_actions)one_hot_action[a] = 1self.replay_buffer.append((s, one_hot_action, r, s_))if len(self.replay_buffer) > self.memory_size:self.replay_buffer.popleft()

在学习过程定期更新网络

    def learn(self):# 定期替换网络参数if self.learn_step_counter % self.replace_target_iter == 0:self.sess.run(self.replace_target_op)# print('-------------target_params_replaced------------------')# sample batch memory from all memory: [s, a, r, s_],采样学习,批量学习minibatch = random.sample(self.replay_buffer, self.batch_size)state_batch = [data[0] for data in minibatch]action_batch = [data[1] for data in minibatch]next_state_batch = [data[3] for data in minibatch]# calculate target q-value batchq_next_batch = self.sess.run(self.q_next, feed_dict={self.s_: next_state_batch})q_real_batch = []for i in range(self.batch_size):q_real_batch.append(minibatch[i][2] + self.gamma * np.max(q_next_batch[i]))# train eval networkself.sess.run(self._train_op, feed_dict={self.s: state_batch,self.action_input: action_batch,self.q_target: q_real_batch})# increasing epsilonif self.epsilon < self.epsilon_max:self.epsilon = self.epsilon + self.epsilon_incrementelse:self.epsilon = self.epsilon_max# print('epsilon:', self.epsilon)self.learn_step_counter += 1

运行效果
在这里插入图片描述
还有一些对比算法
在这里插入图片描述
代码是基于TensorFlow1.x实现的,可以在此基础上再修改优化,完整的代码可根据名字去GitHub上下载获取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/613084.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker容器化技术

docker容器化技术 1.docker概述 docker简单的说就是一个沙盒技术&#xff0c;主要目的是为了将应用运行在其中与外界隔离&#xff0c;方便这个沙盒可以被转移到其它宿主机器。docker虚拟化的是java app、 依赖包、环境信息、操作系统软件。先有docker后有容器化技术&#xff…

提升测试效率,轻松并行运行测试——探秘Pytest插件pytest-xdist

在软件开发中&#xff0c;测试是确保代码质量的重要一环。然而&#xff0c;随着项目规模的增大&#xff0c;测试用例的数量也随之增多&#xff0c;测试的执行时间可能成为一个瓶颈。为了解决这个问题&#xff0c;Pytest提供了丰富的插件生态系统&#xff0c;其中 pytest-xdist …

[C#]调用tesseact-ocr的traineddata模型进行ocr文字识别

【框架地址】 https://github.com/charlesw/tesseract 【算法介绍】 Tesseract OCR是一个开源的光学字符识别引擎&#xff0c;它可以将图像中的文字转换成可编辑和可搜索的文本格式。Tesseract由惠普实验室于1985年开始开发&#xff0c;并在2005年被Google收购后成为了开源项…

api网关-kong

选型 api网关相关功能 服务的路由 动态路由负载均衡 服务发现 限流 熔断、降级 流量管理 黑白名单反爬策略 控制台&#xff1a;通过清晰的UI界面对网关集群进行各项配置。 集群管理&#xff1a;Goku网关节点是无状态的&#xff0c;配置信息自动同步&#xff0c;支持节点水…

7.云原生之jenkins集成SonarQube

1. 私有云实战之基础环境搭建 2. 云原生实战之kubesphere搭建 3.云原生之kubesphere运维 4. 云原生之kubesphere基础服务搭建 5.云原生安全之kubesphere应用网关配置域名TLS证书 6.云原生之DevOps和CICD 7.云原生之jenkins集成SonarQube 8.云原生存储之Ceph集群 文章目录 搭建 …

JS 深克隆(深克隆不考虑函数)深拷贝deepClone

js封装方法实现深拷贝 1.新建名为tools.js的文件&#xff0c;添加内容&#xff1a; export const deepClone (obj, result) > { var result result || {}; for (var prop in obj) { if (obj.hasOwnProperty(prop)) { if (typeof obj[prop] object && obj[prop] …

二维0-1背包问题

题目来源&#xff1a;8. 二维费用的背包问题 - AcWing题库 题目&#xff1a; 有 N 件物品和一个容量是 V 的背包&#xff0c;背包能承受的最大重量是 M。 每件物品只能用一次。体积是 vi&#xff0c;重量是 mi&#xff0c;价值是 wi。 求解将哪些物品装入背包&#xff0c;可…

SpringSecurity 密码加密登录

SpringSecurity 密码加密登录 1.前端所需文件2.后端所用工具类3.登录代码4.灵魂一问 1.前端所需文件 import JSEncrypt from jsencrypt/bin/jsencrypt.min// 密钥对生成 http://web.chacuo.net/netrsakeypairconst publicKey MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqz…

BGP公认任意属性——MED(二)

BGP公认任意属性有两个&#xff0c;分别是&#xff1a;Local-preference 和 MED&#xff0c;本期介绍MED。 点赞关注&#xff0c;持续更新&#xff01;&#xff01;&#xff01; MED 特点 MED &#xff08;多出口鉴别器&#xff09;&#xff0c;也称为BGP COST&#xff0c;…

usb静电防护芯片选择

方案1 USBLC6-2SC6 优缺点 优点&#xff1a;进出使用不同的焊盘&#xff0c;如果没有焊接好信号必定不能通过。有效的避免了虚焊导致故障。 缺点&#xff1a;不能省略&#xff0c;调试时也不能省略。 原理图 参考价格 参考来源 USB切换方案&#xff0c;多电脑共用USB方案…

高级路由学习试题

文章目录 高级路由学习试题一.高级路由题目答案 二.OSPF 相关答案 三.基础知识答案 高级路由学习试题 一.高级路由题目 1.以下属于ITOIP特性的有&#xff08;&#xff09; A、智能 B、开放 C、融合 D、标准 2.层级化网络模型将网络划分为&#xff08;&#xff09; A、汇…

“掌握家庭收支,轻松规划未来,记录日常开销的利器!“

你是否经常对家庭开支感到困惑&#xff0c;不知道钱都花在哪里了&#xff1f;或者想要更好地规划家庭的财务&#xff0c;却无从下手&#xff1f;现在&#xff0c;有了我们的收支明细工具&#xff0c;这些问题都将迎刃而解&#xff01; 第一步&#xff1a;首先我们要进入晨曦记账…

Mxnet导出onnx模型

Mxnet导出onnx模型 requirements mxnet1.9.1python3.8onnxsim 导出模型 import os import mxnet as mx import numpy as np import onnx from onnx import checker from mxnet.onnx import export_model from mxnet.gluon.model_zoo import vision from onnxsim import sim…

java 常⽤的线程池模式CachedThreadPool

线程池中的线程数量是可变的。 当提交一个新任务时&#xff0c;如果线程池中的线程都在运行&#xff0c;新任务就会被放入任务队列中等待执行。 如果线程池中的所有线程都在运行&#xff0c;且任务队列已满&#xff0c;那么线程池会创建新的线程来处理新任务。 使用场景&#x…

遗传算法 (Genetic Algorithm, GA) 详解与实现

文章目录 基本思想基本概念基本操作算法基本步骤代码实现参考文献基本思想 遗传算法(Genetic Algorithm,GA)是一种进化算法,其基本原理是仿效生物界中的“物竞天择、适者生存”的演化法则,它最初由美国Michigan大学的J. Holland教授于1967年提出。 遗传算法是从代表问题…

02.构建和使用的大型语言模型(LLMs)阶段

我们为什么要建立自己的LLMs?LLM从头开始编码是了解其机制和局限性的绝佳练习。此外,它还为我们提供了必要的知识,可以保留或微调现有的开源LLM架构,以适应我们自己的特定领域的数据集或任务。 研究表明,在建模性能方面,定制(LLMs为特定任务或领域量身定制的)可以胜过…

如何在 Flutter 中使用 Tree Shaking 功能优化应用程序的性能

Tree Shaking 是 Fl​​utter 中的一项关键优化技术&#xff0c;可最大限度地减少应用程序 JavaScript 包的大小。它有助于减少应用程序的初始加载时间&#xff0c;提高运行时性能&#xff0c;并确保您的应用程序仅包含实际需要的代码。在本文中&#xff0c;我们将探讨什么是 T…

#华为nova12#系列带你解锁新年第一拍

这一次&#xff0c;华为nova 12 Ultra及nova 12 Pro为可变光圈赋予全新定义&#xff0c;让你无论是记录日常生活&#xff0c;自拍、还是捕捉萌宠、大合影、拍风景或者夜景光源都能轻松驾驭。 智能物理可变光圈让每一个场景都有适宜的光圈选择。可变光圈&#xff0c;全方位出圈…

民安智库(第三方公众满意度调查):物业满意度调查问卷调查实施中,关键问题不容忽视

在开展物业满意度调查问卷调查时&#xff0c;实施过程中需要注意一些关键问题&#xff0c;以确保调查的可靠性和有效性。本文将分享民安智库在物业满意度调查方面的实践经验&#xff0c;探讨在问卷调查实施中需要注意的问题。 在实施问卷调查之前&#xff0c;要明确调查的目标…

Python流程控制语句

目录 一、分支结构 &#xff08;一&#xff09;单分支语句 &#xff08;二&#xff09;双分支语句 &#xff08;三&#xff09;多分支语句 &#xff08;四&#xff09;嵌套的分支语句 二、循环结构 循环结构概述 &#xff08;一&#xff09;for循环 &#xff08;二&am…