python
文章平均质量分 74
IEEEagent RL
电气建模,985博士,代码相关欢迎私信和留言。
展开
-
RL: 几个扩展性很好的网络
目前主流网络是Q-network, AC框架Q-Net: DQN, DuelingQN, DoubleQN, D3QNAC: DDPG, TD3, PPO, SAC等基础网络如下,可扩展性很好:详情参考ElegantRLimport torchimport torch.nn as nnimport numpy as np#Q-Netclass Qnet(nn.Module): def __init__(self, mid_dim, state_dim, action_dim):原创 2021-08-08 16:05:47 · 234 阅读 · 0 评论 -
RL: 一个可扩展性很好的环境
自定义强化学习环境可以在以下基础上建立,可扩展性很好定义环境:(打印环境信息,数据类型float32)获取环境信息,共7个量(str, int, int, int, int, bool, float)- > (env_name, state_dim, action_dim, action_max, max_step, if_discrete, target_return)每个episode后的环境重置,状态归一化import osimport numpy as npimport gym原创 2021-08-07 20:32:48 · 449 阅读 · 0 评论 -
RL强化学习笔记:OpenAI gym建立自己的探索环境
本文为个人学习笔记,方便个人查阅观看原文链接利用OPenAI gym建立自己的强化学习探索环境:首先,先定义一个简单的RL任务:如图所示:初始状态下的环境,机器人在左上角出发,去寻找右下角的电池,静态障碍:分别在10、19位置,动态障碍:有飞机和轮船,箭头表示它们可以移动到的位置,会随时间改变而改变。这里假设:它们的移动速度和机器人一样。飞机会沿着当前列上下来回移动,轮船则只在当前位置到左边两格的范围来回移动。移动范围:如箭头所示。假设每个训练episode中,机器人在每一个step都有四.原创 2021-05-24 19:50:48 · 805 阅读 · 2 评论 -
笔记:机器学习的知识图谱(全)
原创 2021-05-17 17:55:43 · 804 阅读 · 0 评论 -
RL强化学习笔记(三):函数近似
RL强化学习笔记(三):函数近似文章目录RL强化学习笔记(三):函数近似1. 函数近似方法1.1 随机梯度下降SGD1.2 半梯度下降1.3 带资格迹的半梯度下降2. 线性近似2.1 线性最小二乘策略评估2.1.1 线性最小二乘回合更新LSMC2.1.2 线性最小二乘时序差分更新LSTD2.1.3 线性最小二乘最优策略求解3. 函数近似的收敛性4. 深度强化学习-DQN4.1 经验回放4.2 目标网络4.3 双重深度Q网络DDQN1. 函数近似方法对于Model_base的数值迭代算法、Model_f原创 2021-02-26 22:58:25 · 508 阅读 · 2 评论 -
Model_free RL强化学习笔记(二)
Model_free强化学习:附上实验室大佬的github学习笔记:点击进入《虎师兄带你入门强化学习》文章目录Model_free强化学习:1. 蒙特卡罗法1.1 ϵ−贪心策略1.2 求解控制问题下,在线蒙特卡罗法伪代码1.3 柔性策略的每次访问同侧回合更新算法伪代码1.4 不足2. 同策时序差分更新2.1 时序差分价值函数迭代式2.2 时序差分与蒙特卡罗方法对比2.3 n步时序差分2.4 步长选择2.5 伪代码3. SARSA算法3.1 算法流程3.2 期望SARSA算法4. 异策时序差分更新4.原创 2021-02-22 21:04:53 · 461 阅读 · 2 评论 -
转载:强化学习中Bellman最优性方程背后的数学原理?
一. Bellman最优贝尔曼方程在强化学习(RL)中无处不在,它是由美国应用数学家理查德·贝尔曼(Richard Bellman)提出,用于求解马尔可夫决策过程。贝尔曼最优性方程贝尔曼最优性方程是一个递归方程,对于Model_based环境可由动态规划(dynamic programming,DP)算法求解,可以通过求解该方程可以找到最优值函数和最优策略。对于任何有限的MDP,都存在一个最佳策略π*,满足其他所有可能的策略π都不会比这个策略更好。如果对于状态空间中的每个状态,使用π1派生..转载 2021-02-17 10:21:09 · 3198 阅读 · 0 评论 -
《统计学习方法》读书笔记
《统计学习方法》读书笔记文章目录《统计学习方法》读书笔记1. 基于梯度的优化方法2. KKT条件:3. 线性最小二乘法(Moore-Penrose 伪逆求解)4. 机器学习任务总结5. 精确率、准确率、查准率(召回率)、ROC曲线、AUC值6. 防止过拟合的5种方法7. 熵、相对熵(KL散度)、交叉熵8. 最大似然估计9. 贝叶斯统计1. 基于梯度的优化方法(1)最速梯度下降(局部非全局),计算方向导数:minu,uTu=1uT∇xf(x)=minu,uTu=1∣∣u∣∣2∣∣∇xf(x)∣∣2co原创 2021-01-24 22:05:24 · 382 阅读 · 0 评论 -
机器视觉:目标检测之yolov3代码复现(二)
Yolov3关于yolov3网络的详细结构、前向推导、反向传播等细节可以参考我的上一篇文章:https://blog.csdn.net/weixin_45776027/article/details/112854974一步一步地教你复现代码(Kears框架)首先看结构图:yolov3包含了三那个主要模块:1)集卷积、批归一化、Leakyrelu激活层为一体的DBL模块2)残差网络结构的resunit模块3)由填充+DBL+残差组成的resn_body模块---------------.原创 2021-01-20 20:58:04 · 552 阅读 · 0 评论 -
深度学习之模型量化学习笔记
为什么要量化模型?模型部署时,往往考虑实际问题,算力、内存、带宽、速度、FPS、功耗、时延等等。特别是在移动端和嵌入式设备等资源受限的边缘侧应用场景中更加需要我们进行优化。什么是模型量化?模型量化: 即以较低的推理精度损失将连续取值(或者大量可能的离散取值)的浮点型模型权重或流经模型的张量数据定点近似(通常为int8)为有限多个(或较少的)离散值的过程,它是以更少位数的数据类型用于近似表示32位有限范围浮点型数据的过程模型的输入输出依然是浮点型,从而达到减少模型尺寸大小、减少模型内存消耗及加快模原创 2021-01-20 14:17:06 · 1419 阅读 · 0 评论 -
Resnet残差网络
为什么使用残差网络?深度学习中,随着网络层数的增加,容易导致:计算资源的过多消耗模型容易过拟合不恰当的激活函数导致梯度消失/梯度爆炸通过引入残差网络直接映射的加入,保证了L+1层网络,一定比L层网络包含更多的图像信息。残差块表示为:4. 残差:表示预测值与观测者之间的差距5. 误差:表示观测值与真实值之间的差距6. 预测值:表模型训练以后得到的输出值7. 观测值:表模型的输入,如模型测试时通过图像传感器输入的图像信息8. 真实值:人的肉眼所见的图像信息,无任何误差残差网络的原创 2021-01-20 13:02:44 · 265 阅读 · 0 评论 -
机器视觉:目标检测之yolov3学习笔记(一)
yolov3学习笔记文章目录yolov3学习笔记1. Darknet-53网络2. YOLOV3结构3. 前向过程4. 反向过程(训练策略)5. 损失函数6. 网络模型结构1. Darknet-53网络Yolov3采用的darknet-53网络模型,此结构主要由75个卷积层构成,卷积层对于分析物体特征最为有效。由于没有使用全连接层,该网络可以通过strides实现对应任意大小的输入图像。结构如下:假设输入图像shape(416,416,3)backbone部分由Yolov2时期的Darknet-原创 2021-01-19 23:38:14 · 1381 阅读 · 0 评论 -
tensorflow1.0静态图保存pb模型
静态图保存pb模型:import tensorflow as tfimport osfrom tensorflow.python.framework import graph_util pb_file_path = os.getcwd() with tf.Session(graph=tf.Graph()) as sess: x = tf.placeholder(tf.int32, name='x') y = tf.placeholder(tf.int32, name='y') b = t转载 2020-12-23 09:20:56 · 321 阅读 · 0 评论 -
手把手教你将AI模型做成一个手机APP并成功运行
系统环境:linux(我是用的Ubuntu)工具:Paddlelite、Android studio、Android studio tools、相关SDK、NDK、java开发环境jdk硬件:Android手机一部教程:下载并配置Android studio所需环境1.SDK环境:File>> setting >> Android sdk 和 Gradle.gradle一定放在当前目录下2. 代理环境与SDK配置172.0.0.1:80(本机ip)file>原创 2020-12-09 22:09:28 · 2849 阅读 · 0 评论 -
keras学习笔记1
原创 2020-10-16 17:05:19 · 88 阅读 · 0 评论 -
plt图如何显示中文
加入如下代码:plt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus'] = False效果如下:原创 2020-10-13 16:27:39 · 925 阅读 · 0 评论 -
Paddle框架下的图像边缘检测
#Paddle框架:图像边缘检测import matplotlib.pyplot as pltfrom PIL import Imageimport numpy as npimport paddleimport paddle.fluid as fluidfrom paddle.fluid.dygraph.nn import Conv2Dfrom paddle.fluid.initializer import NumpyArrayInitializerimg = Image.open('1原创 2020-10-09 21:52:59 · 601 阅读 · 0 评论 -
keras框架下的卷积神经网络分类练习
目标····掌握keras卷积网络相关API····掌握卷积网络的构建卷积网络简介:卷积神经网络由一个或多个卷积层、池化层以及全连接层等组成。与其他深度学习结构相比,卷积神经网络在图像等方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他浅层或深度神经网络,卷积神经网络需要考量的参数更少而经典卷积网络AlexNet模型与LexNet模型更为优秀,以后在做介绍。实践:使用keras内置数据集CIFAR100类别分类这个数据集有100种内别,做分类测试很好用用于构建原创 2020-09-13 12:22:31 · 508 阅读 · 0 评论 -
python训练一个简单的感知机用于手写数据集识别
import kerasfrom keras import layersimport matplotlib.pyplot as pltimport joblibimport keras.datasets.mnist as mnistimport pandas as pdimport numpy as np(train_image, train_label), (test_image, test_label) = mnist.load_data()#建立感知机model = keras.原创 2020-09-12 12:01:38 · 428 阅读 · 0 评论 -
python训练一个简单的回归模型保存并调用
import tensorflow as tfimport kerasimport numpy as npfrom keras import layersimport matplotlib.pyplot as pltimport joblibx = np.linspace(0, 100, 30)#主要用来创建等差数列,等差间隔为30y = 3*x+7+np.random.random(30)print(x)print(y)plt.scatter(x, y)model = ker原创 2020-09-12 11:58:45 · 1175 阅读 · 0 评论 -
Keras内置的几种评价函数
在Keras中,官方内置了几种评价函数。对于二分类问题,评价指标可以用 binary_accuracy,就是最直观上讲的准确率。当面对多分类或者多标签的任务时,评价度量可能会用到这两个 categorical_accuracy和 sparse_categorical_accuracy代码对比如下:def categorical_accuracy(y_true, y_pred): return K.cast(K.equal(K.argmax(y_true, axis=-1),原创 2020-08-29 12:23:29 · 1413 阅读 · 0 评论 -
Tensorflow实现简单的线性回归
1 准备好数据集:y = 0.8x + 0.7 100个样本2 建立线性模型随机初始化W1和b1y = W·X + b,目标:求出权重W和偏置b3 确定损失函数(预测值与真实值之间的误差)-均方误差4 梯度下降优化损失:需要指定学习率,一般为0-1最小值(超参数)import tensorflow as tfimport osdef linear_regression(): """ 自实现线性回归 :return: None """ # 1)准备好数原创 2020-08-29 11:41:07 · 116 阅读 · 0 评论 -
PyQt5在pyCharm中调用失败怎么办?this application failed to start because no QT platform plugin could be
使用PYQT5工具时:(具体如何添加PYQT5工具请参考这个博客:(超全)https://blog.csdn.net/hjwdz2015/article/details/104793872调用工具时出现以下错误:华丽的分割线----------------------------------------------------------------解决方法1:添加环境变量:华丽的分割线---------------------------------------------------原创 2020-08-12 17:54:26 · 883 阅读 · 0 评论 -
OpenCV如何快速获取自定义数据集(摄像头接口)
使用opencv调用摄像头接口,获取自己拍摄的图片数据集import tensorflow as tfimport cv2 as cv#自己捕捉训练数据集#1.设置roi区域参数img_roi_x = 30img_roi_y = 200img_roi_heigh = 350img_roi_width = 350capture = cv.VideoCapture(0)#调用摄像头接口index = 1#设置频率,初始为1;num = 1#设置计数器,初始为1;while True:原创 2020-08-12 12:05:38 · 495 阅读 · 0 评论 -
TensorFlow框架入门:2.数据类型转换
上一节简单地介绍了下数据类型,这一节介绍属性及数据类型的转换import tensorflow as tfimport numpy as npwith tf.device('cpu'): a = tf.constant([1]) # 在cpu创建#1.数据类型判断print(tf.is_tensor(a))#2.数据类型转换#numpy转tensora_np = np.arange(5)a_tensor = tf.convert_to_tensor(a_np,dtype=tf原创 2020-08-06 21:29:48 · 171 阅读 · 0 评论 -
TensorFlow框架入门:1.数据类型
TensorFlow里面的Tensor“张量”,到底是个什么鬼?0维张量/标量 标量是一个数字1维张量/向量 1维张量称为“向量”。2维张量 2维张量称为矩阵3维张量 公用数据存储在张量 时间序列数据 股价 文本数据 彩色图片(RGB)在我的理解里,张量=容器,是一个由数字构成的立方体,三维即三个坐标轴的东东入门级:1.数据类型import tensorflow as tf#一、定义:数据类型#1.张量概念,使用constant创建的均为常量不可更改#光print只能看到原创 2020-08-06 21:28:06 · 127 阅读 · 0 评论 -
OpenCV-机器视觉前的准备:调用摄像头接口
OpenCV这个库功能挺全的,也是免费,适合学生搞搞研究啊,随便平时兴趣爱好等等,但效果因为是免费的所以,,,这里简单的介绍下调用摄像头接口:haarcascades是自带的人脸识别函数,将其识别人脸的xml文件导入至程序中:(包括人脸啊、鼻子、眼睛等等)具体程序如下:#作者:是最强的冰哥#呼出摄像头程序,主要用到opencv-CascadeClassifier级联分类器# -*- coding:utf-8 -*-import cv2# 测试打开摄像头检测跟踪人脸#haarcascade原创 2020-08-02 21:32:38 · 299 阅读 · 0 评论 -
python机器学习之回归预测:电池续航里程问题
最近在做电池续航测试,不同型号参数的动力电池可以跑40-70多公里,开个小电动出去测里程,累的要死,正好要到数据集,弄个模型预测一波,只用输入电池参数,就可以预测里程,舒服~ (实际样本太少,不足100个,预测效果与实际测量在上下3公里左右波动)华丽的分割线---------------------------------------------------------------------------用了三种方法:支持向量机回归多元回归函数随机森林回归支持向量机回归预测代码如下:#原创 2020-07-16 18:17:11 · 3048 阅读 · 37 评论 -
Python机器学习前的准备:数据预处理篇(一)
数据获取介绍一种将mat数据转换为csv格式的方法import pandas as pdfrom matplotlib import pyplot as pltfrom sklearn import preprocessingimport scipyfrom scipy import iofrom sklearn.preprocessing import Normalizerfeatures_struct = scipy.io.loadmat('F:\数据处理\数据\某风电场功率\不.原创 2020-07-11 10:45:36 · 819 阅读 · 1 评论