阅读莫凡python中的DQN代码遇到的基础知识障碍的解决_莫凡dqn_HAH-M的博客-程序员秘密

技术标签: DQN  

阅读莫凡python中的DQN代码遇到的基础知识障碍的解决

tf.get_collection()

  1. tf.add_to_collection:把变量放入一个集合,把很多变量变成一个列表
  2. tf.get_collection:从一个集合中取出全部变量,是一个列表
  3. tf.add_n:把一个列表的东西都依次加起来

tf.assign(A, new_number)

  1. 这个函数的功能主要是把A的值变为new_number

zip()

  1. zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
  2. 以下实例展示了 zip 的使用方法:
>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)     # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c)              # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped)          # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]

tf.placeholder()

tf.placeholder(dtype, shape=None, name=None) 此函数可以理解为形参,用于定义过程,在执行的时候再赋具体的值

dtype:数据类型。常用的是tf.float32,tf.float64等数值类型
shape:数据形状。默认是None,就是一维值,也可以是多维,比如[2,3], [None, 3]表示列是3,行不定
name:名称。

tf.variable_scope

  1. tf.variable_scope可以让变量有相同的命名,包括tf.get_variable得到的变量,还有tf.Variable的变量
  2. tf.name_scope可以让变量有相同的命名,只是限于tf.Variable的变量

tf.random_normal_initializer()函数

  1. tf.random_normal_initializer(mean=0.0, stddev=1.0, seed=None, dtype=tf.float32) 返回一个生成具有正态分布的张量的初始化器。
  2. tf.constant_initializer(value) 生成一个初始值为常量value的tensor对象
    value:指定的常量
    dtype: 数据类型
    verify_shape: 是否可以调整tensor的形状,默认可以调整

tf.reduce_sum

hasattr()函数

hasattr() 函数用于判断对象是否包含对应的属性。

hstack()

hstack(tup) ,参数tup可以是元组,列表,或者numpy数组,返回结果为numpy的数组

import numpy as np
a=[1,2,3]
b=[4,5,6]
print(np.hstack((a,b)))

输出:[1 2 3 4 5 6 ]

import numpy as np
a=[[1],[2],[3]]
b=[[1],[2],[3]]
c=[[1],[2],[3]]
d=[[1],[2],[3]]
print(np.hstack((a,b,c,d)))

输出:
[[1 1 1 1]
 [2 2 2 2]
 [3 3 3 3]]
它其实就是水平(按列顺序)把数组给堆叠起来,vstack()函数正好和它相反。

tf.GraphKeys.GLOBAL_VARIABLES函数

常见GraphKeys

  1. GLOBAL_VARIABLES: 该collection默认加入所有的Variable对象,并且在分布式环境中共享。一般来说,TRAINABLE_VARIABLES包含在MODEL_VARIABLES中,
  2. MODEL_VARIABLES包含在GLOBAL_VARIABLES中。MODEL_VARIABLES包含在GLOBAL_VARIABLES中。
  3. LOCAL_VARIABLES: 与GLOBAL_VARIABLES不同的是,它只包含本机器上的Variable,即不能在分布式环境中共享。
  4. MODEL_VARIABLES: 顾名思义,模型中的变量,在构建模型中,所有用于正向传递的Variable都将添加到这里。MODEL_VARIABLES: 顾名思义,模型中的变量,在构建模型中,所有用于正向传递的Variable都将添加到这里。
  5. TRAINALBEL_VARIABLES: 所有用于反向传递的Variable,即可训练(可以被optimizer优化,进行参数更新)的变量。TRAINALBEL_VARIABLES: 所有用于反向传递的Variable,即可训练(可以被optimizer优化,进行参数更新)的变量。
  6. SUMMARIES: 跟Tensorboard相关,这里的Variable都由tf.summary建立并将用于可视化。
  7. QUEUE_RUNNERS: the QueueRunner objects that are used to produce input for a computation.
  8. MOVING_AVERAGE_VARIABLES: the subset of Variable objects that will also keep moving averages.
  9. REGULARIZATION_LOSSES: regularization losses collected during graph construction.

常用的几个优化器

Optimizer
GradientDescentOptimizer
AdagradOptimizer
AdagradDAOptimizer
MomentumOptimizer
AdamOptimizer
FtrlOptimizer
RMSPropOptimizer

基本的用法就是tf.train.xx

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qawsedrf123lala/article/details/85076452

智能推荐

[转载] FFMPEG视音频编解码零基础学习方法_weixin_33709219的博客-程序员秘密

在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的“大神”,有的是刚开始学习的初学者。在和大家探讨的过程中,我忽然发现了一个问题:在“大神”和初学者之间好像有一个不可逾越的鸿沟。“大神”们水平高超,探讨着深奥的问题;而初学者们还停留在入门阶段。究竟是什么原因造成的这种“两极分化”呢?最后,我发现了问题的关键:FFMPEG难度比较大,...

[BZOJ] 4756: [Usaco2017 Jan]Promotion Counting #线段树合并+权值线段树_weixin_30706691的博客-程序员秘密

4756: [Usaco2017 Jan]Promotion CountingTime Limit:10 SecMemory Limit:128 MBSubmit:298Solved:210[Submit][Status][Discuss]DescriptionThe cows have once again tried to form a startup co...

AWS KVS(Kinesis Video Streams)之WebRTC移植编译(五)_沉迷WebRTC的博客-程序员秘密

在使用KVS完整的WebRTC的SDK(包括信令、STUN/TURN等),我们还需要编译(详见SDK的依赖项)如下两个库1、amazon-kinesis-video-streams-producer-c中的libkvsCommonLws.a编译君正平台:我们在下载的源码目录中新建如下三个目录:Bin/T31X :存放生成的库Build/T31X: 编译脚本Library/T31X:依赖项CMakeLists.txt内容如下:#**********************

解决HTTPClient长连接 60s会自动断开问题,springboot restful接口_浮_雲的博客-程序员秘密

配置一下springboot内置tomcat的KeepAliveTimeout属性即可package com.pxwl.devicetxtlog.config;import org.apache.catalina.connector.Connector;import org.apache.coyote.http11.Http11NioProtocol;import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCust.

js实现一个函数判断输入字符串是否为回文(基础面试题四)_编写一个函数,用于判断字符串是否回文,首尾字母相同是回文,比如abcba是回文,abcde_Charles_Tian的博客-程序员秘密

题目:实现一个函数,这个函数可以用来判断输入字符串是否为回文。忽略大小写,如Helleh,王中王等。首先解这题的首要问题是理解回文这个概念,回文的定义是把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文,也叫回环。分析:1)既然知道了回文的概念,那么我们很明显的知道这题需要遍历,也明白遍历到回文中间的那个字符的对应索引就可以了2)然后对前面一半遍历的字符与后面遍历的一半字...

Jenkins 构建Python定时任务及配置邮件发送_Storm啊的博客-程序员秘密

Jenkins 相关知识太多,很难在一篇文章讲完,今天说两个知识点,一个是构建Python的定时任务,一个是配置邮件发送。一、构建Python定时任务1、安装python插件进入到Jenkins,系统管理,管理插件,可选插件,搜索python plugin,安装2、创建一个python构建任务3、构建,成功打印“hello, Storm”4、配置定时任务

随便推点

nginx启动提示nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)_沐源__的博客-程序员秘密

在centos中配置Nginx自动开启,但是无法访问,重启以后重启开启防火墙。https://blog.csdn.net/yufeng_lai/article/details/88819981

在MacOS上使用Aircrack-ng获取WiFi密码_brew install aircrack-ng_海苔小饼干的博客-程序员秘密

用户与路由器建立连接时确认身份,是通过发送一个将密码进行hash加密后的握手包进行的。因此我们只需要监听并获得该握手包,通过比对字典中的hash值即可确定密码明文。

Hive On Spark搭建(cdh)_阿武z的博客-程序员秘密

hive 和 spark版本之前有强对应关系apache hive 和 spark 对应关系表 master 2.3.0 3.0.x 2.3.0 2.3.x 2.0.0 2.2.x 1.6.0 2.1.x 1.6.0 2.0.x 1.5.0 1.2.x 1.3.1 1.1.x 1.2.0...

java实时汇率的接口_汇率查询API接口_免费数据接口 - 极速数据_抹茶奶盖大杯多冰的博客-程序员秘密

package api.jisuapi.exchange;import api.util.HttpUtil;import net.sf.json.JSONObject;public class Single {public static final String APPKEY = "your_appkey_here";// 你的appkeypublic static final String UR...

Linux性能优化实战:案例篇-为什么应用容器化后,启动慢了很多?(46)_weixin_30235225的博客-程序员秘密

一、上节回顾不知不觉,我们已经学完了整个专栏的四大基础模块,即 CPU、内存、文件系统和磁盘 I/O、以及网络的性能分析和优化。相信你已经掌握了这些基础模块的基本分析、定位思路,并熟悉了相关的优化方法。接下来,我们将进入最后一个重要模块—— 综合实战篇。这部分实战内容,也将是我们对前面所学知识的复习和深化。我们都知道,随着 Kubernetes、Docker 等技术的普及,越...

C++快速读取大文件_K.L.Zous的博客-程序员秘密

#include <ctime>#include <ios>#include <vector>#include <iostream>#include <fstream>using namespace std;/** * 快速读取大文件 * @retur

推荐文章

热门文章

相关标签