Python
小柴柴是也
北邮本科:电子信息科学与技术
研究生:电子科学与技术
研究方向:卫星通信+深度强化学习
正在努力从咸鱼开始进化,大家一起进步呀!!
展开
-
yaml报错TypeError: load() missing 1 required positional argument: ‘Loader‘
添加一下命令即可:我的操作:return yaml.load(config)改为return yaml.full_load(config)问题完美解决原创 2021-11-18 20:37:07 · 1003 阅读 · 0 评论 -
ValueError( Shape(4, ?, 1, 20) and () are incompatible
报错:解决:将文件中的 return tf.concat(axis, tensors)改为: return tf.concat(tensors, axis)问题完美解决原创 2021-11-09 10:47:32 · 346 阅读 · 0 评论 -
No module named ‘__main__.common‘; ‘__main__‘ is not a package
今天在调通代码时遇到一个难缠的bug,源代码如下:from .common import _FLOATX, _EPSILON结果报错:问题原因:也就是说,这是相对导入,只有在父模块在当前运行环境中被导入过才能用。这揭示了报错的缘由,相对导入基于当前模块的名称,因为主模块总被命名为"main"。当我们从主模块启动时,Python就识图用"main"替换".",于是那句话实际便成了from main.commom import common,这当然是找不到的。我的目录:解决方法:将引用语原创 2021-11-09 10:30:28 · 1409 阅读 · 0 评论 -
【强化学习】一文带你理清强化学习
一文带你理清强化学习这个图描述的比较清晰,蓝框里是整个强化学习的一些概念基础了,橙色是一些学习方法,可以选择性的选择一些,废话不多说,接下来就按照这个路线图展开。马尔可夫链马尔科夫链:用来描述智能体和环境互动的过程...原创 2021-09-09 22:39:23 · 1001 阅读 · 0 评论 -
【强化学习】可视化学习tensorboard
tensorflow定义了一个图结构:代码:a = tf.constant(3.0, name="a")b = tf.constant(4.0, name="b")c = tf.add(a, b, name="add")var = tf.Variable(tf.random_normal([2, 3], mean=0.0, stddev=1.0), name="variable")print(a, var)# 必须做一步显示的初始化opinit_op = tf.global_v原创 2021-05-21 14:53:10 · 987 阅读 · 0 评论 -
【强化学习】PPO代码注释版本
# PPO主要通过限制新旧策略的比率,那些远离旧策略的改变不会发生# import tensorflow as tfimport tensorflow.compat.v1 as tftf.compat.v1.disable_eager_execution()import numpy as npimport matplotlib.pyplot as pltimport gym# 定义一些超级参量EP_MAX = 1000 # 最大步数EP_LEN = 200GAMMA = 0.9原创 2021-05-21 11:23:30 · 2918 阅读 · 8 评论 -
【强化学习】A3C代码注释版本
########################################### A3C做出的改进:# 解决AC难以收敛的问题# 不一样的地方:#import threading# import tensorflow as tfimport tensorflow.compat.v1 as tftf.compat.v1.disable_eager_execution()import numpy as npimport gymimport osimport shutilimp原创 2021-05-21 11:21:29 · 1028 阅读 · 0 评论 -
【强化学习】A3C原理
先解释一下什么叫异步、什么叫并发:**异步:**和同步相对,同步是顺序执行,而异步是彼此独立,在等待某个事件的过程中继续做自己的事,不要等待这一事件完成后再工作。线程是实现异步的一个方式,异步是让调用方法的主线程不需要同步等待另一个线程的完成,从而让主线程干其他事情。**并发:**同一时间段有几个程序都处于已经启动到运行完毕之间,并且这几个程序都在同一个处理机上运行,并发的两种关系是同步和互斥。**多线程:**多线程是进程中并发运行的一段代码,能够实现线程之间的切换执行;**异步和多线程:**不是同原创 2021-05-21 11:20:16 · 8606 阅读 · 1 评论 -
【强化学习】AC注释版本
## 强化学习 Actor-critic# 和PG比起来主要的变化:# 评估点由状态价值变成了TD_error,网络形式变了# learn函数长得不一样# action有一个优化函数,优化的是价值函数,希望最大化期望的reward,Critic网络也有一个reward,希望最小化现实和估计的误差(即td——error)# Actor使用我们上一节讲到的策略函数,负责生成动作(Action)并和环境交互。而Critic使用我们之前讲到了的价值函数,负责评估Actor的表现,并指导Actor下一阶段的原创 2021-05-21 11:13:45 · 301 阅读 · 0 评论 -
【强化学习】Actor Critic原理
PG算法是一种只基于policy的一种方法,存在的问题就是该算法需要完整的状态序列,且单独对策略函数进行迭代更新,不太容易收敛。Actor-critic方法呢是一种将 策略(Policy Based)和价值(Value Based)相结合的方法。下面继续来理一下AC方法的思路!Actor-Critic算法包括两部分,Actor网络使用PG里的策略函数,负责生成动作,和环境交互,Critic网络使用价值函数,负责评估Actor的表现,并指导Actor下一阶段的动作。PG中我们用的是蒙特卡罗法来计算每一步原创 2021-05-21 11:12:22 · 500 阅读 · 0 评论 -
【强化学习】Policy Gradients代码注释版本
import gym #import tensorflow as tfimport numpy as np# Hyper ParametersGAMMA = 0.95 # discount factor 折扣因子LEARNING_RATE = 0.01 # 学习率class Policy_Gradient(): # 咱们来搞一下大头! def __init__(self, env): # 初始化 # 先初始化一些参量 self.原创 2021-05-21 11:09:16 · 243 阅读 · 0 评论 -
一些python函数及其用法
1.np.ravel()方法ravel是将数组维度拉成一维数组,也就是将矩阵向量化x = np.array{ [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] ] }print(np.ravel(x))输出[ 1 2 3 4 5 6 ]2.b = a[np.newaxis,:]import numpy as npa = np.arange(0, 10)print('a.shape',a.shape)print('a',a)b = a[np.newaxis,:]c =原创 2021-04-26 11:23:30 · 135 阅读 · 0 评论 -
Python列表推导式
列表推导式是Python构建列表(list)的一种快捷方式,可以使用简洁的代码就创建出一个列表,即循环创建列表.for可以用来创建列表,列表推导式就相当于是for循环的简化版1. 最简单的情况values = [10, 21, 5, 7, 12]squares = []for x in values: squares.append(x**2)print squares运行结果:[100, 441, 25, 49, 144]可以变成values = [10, 21, 5, 7原创 2021-04-16 21:22:59 · 129 阅读 · 2 评论