相关文章:

【一】tensorflow安装、常用python镜像源、tensorflow 深度学习强化学习教学

【二】tensorflow调试报错、tensorflow 深度学习强化学习教学

【三】tensorboard安装、使用教学以及遇到的问题

【四】超级快速pytorch安装


trick1---实现tensorflow和pytorch迁移环境教学


tf.gather_nd详解

tf.gather_nd(
params,
indices,
name=None
)

按照indices的格式从params中抽取切片(合并为一个Tensor)indices是一个K维整数Tensor。

import tensorflow as tf

a = tf.Variable([[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10],
[11, 12, 13, 14, 15]])
index_a1 = tf.Variable([[0, 2], [0, 4], [2, 2]]) # 随便选几个
index_a2 = tf.Variable([0, 1]) # 0行1列的元素——2
index_a3 = tf.Variable([[0], [1]]) # [第0行,第1行]
index_a4 = tf.Variable([0]) # 第0行 with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(sess.run(tf.gather_nd(a, index_a1)))
print(sess.run(tf.gather_nd(a, index_a2)))
print(sess.run(tf.gather_nd(a, index_a3)))
print(sess.run(tf.gather_nd(a, index_a4)))

结果:

[ 3  5 13]
2
[[ 1 2 3 4 5]
[ 6 7 8 9 10]]
[1 2 3 4 5]

tf.reduce_sum()_tf.reduce_mean()_tf.reduce_max()

reduce_sum应该理解为压缩求和,用于降维

tf.reduce_sum(input_tensor,axis=None,keepdims=None,name=None,reduction_indices=None,keep_dims=None)

  • input_tensor: The tensor to reduce. Should have numeric type. #输入
  • axis: The dimensions to reduce. If None (the default), reduces all dimensions. Must be in the range (rank(input_tensor), rank(input_tensor)).#取0第一维,取1第二维,取-1最后一维
  • keepdims: If true, retains reduced dimensions with length 1.#按照原来的维度
  • name: A name for the operation (optional).
  • reduction_indices: The old (deprecated) name for axis.#axis的原来的名字
  • keep_dims: Deprecated alias for keepdims.
import tensorflow as tf
import numpy as np x = tf.constant([[1,1,1],[2,2,2]])
with tf.Session() as sess:
print(sess.run(tf.reduce_sum(x))) #所有求和
print(sess.run(tf.reduce_sum(x,0))) #按 列 求和
print(sess.run(tf.reduce_sum(x,1))) #按 行 求和
print(sess.run(tf.reduce_sum(x,1,keepdims=True))) #按维度 行 求和
print(sess.run(tf.reduce_sum(x,[0,1]))) #行列求和
print(sess.run(tf.reduce_sum(x,reduction_indices=[1])))

输出结果

9
[3 3 3]
[3 6]
[[3]
[6]]
9
[3 6]
import tensorflow as tf
import numpy as np x = tf.constant([[1,2],[3,4]])
with tf.Session() as sess:
print(sess.run(tf.reduce_mean(x))) #所有求平均
print(sess.run(tf.reduce_mean(x, 0))) #按 列 求和
print(sess.run( tf.reduce_mean(x, 1)))#按行求平均
print(sess.run(tf.reduce_max(x)))
print(sess.run(tf.reduce_max(x, 0)))
print(sess.run(tf.reduce_max(x, 1)))

输出

###############输出##########2
[2 3]
[1 3]
4
[3 4]
[2 4]

collections.deque -- 队列的使用

deque(maxlen=N)创建一个固定长度的队列。当有新纪录加入而队列已满时会自动移除最老的那条记录。

from collections import deque
q = deque(maxlen=3)
q
Out[9]: deque([])
q.append(1)
q.append(2)
q.append(3)
q
Out[13]: deque([1, 2, 3])
q.append(4)
q
Out[15]: deque([2, 3, 4])

如果不指定队列的大小,也就得到了一个无界限的队列,可以在两端执行添加和删除操作。

q = deque()
q
Out[17]: deque([])
q.append(1)
q.append(2)
q.append(3)
q
Out[21]: deque([1, 2, 3])
q.appendleft(4)
q
Out[23]: deque([4, 1, 2, 3])
q.pop()
Out[24]: 3
q
Out[25]: deque([4, 1, 2])
q.popleft()
Out[26]: 4
q
Out[27]: deque([1, 2])

应用: --保留最后N个元素(保存有限的历史记录),当发现有匹配时就输出当前的匹配行以及最后检查过的N行文本:

def search(lines, pattern, history=5):
""" 文本匹配操作:当发现有匹配时就输出当前的匹配行及最后检查过的N行文本 """
previous_lines = deque(maxlen=history)
for line in lines:
if pattern in line:
# 将处理搜索过程的代码和使用搜索结果的代码解耦
yield line, previous_lines # 返回line,previous_lines
previous_lines.append(line) with open('test.txt') as f:
for line, prevlines in search(f, 'python', 5): # for用来迭代生成器search
for pline in prevlines:
print(pline, end='') # 将end='\n'替换
print(line, end='')
print('-'*20)

numpy.random.seed()的参数说明

numpy.random.seed()函数:seed( ) 用于指定随机数生成时所用算法开始的整数值,如果使用相同的seed( )值,则每次生成的随即数都相同

seed()括号中的参数该如何设置呢?

把seed()中的参数比喻成“类”,eg. seed(5):表示第5类
注意:从每类里选出来的数都是不会变的,从不同的堆里选随机每次都不一样

import numpy as np
np.random.seed(1)
a = np.random.random()
print(a) a
0.417022004702574
import numpy as np
np.random.seed(2)
a= np.random.random() a
0.83599490214200376

两次输出的 a 是不一样的,那如果我在某一块程序想要a=0.417022004702574时,该怎么办?那此时我们还需要再申明一次seed(1)

import numpy as np
np.random.seed(1)
a = np.random.random()
print(a)

(参数可以任意设置,只要前后所用参数一样,就可以取到一样的随机数)

tf.gradients()

在tensorflow中,tf.gradients()的参数如下:

tf.gradients(ys, xs,
grad_ys=None,
name='gradients',
colocate_gradients_with_ops=False,
gate_gradients=False,
aggregation_method=None,
stop_gradients=None)

tensorflow语法【tf.gather_nd、reduce_sum、collections.deque 、numpy.random.seed()、tf.gradients()】的更多相关文章

  1. numpy.random.seed()方法

    先贴参考链接: https://stackoverflow.com/questions/21494489/what-does-numpy-random-seed0-do numpy.random.se ...

  2. numpy.random.seed()

    numpy.random.seed():用于指定随机数生成时使用算法的开始值,如果没有指定每次生成的值都不一样 如果不指定seed的值,那么每次随机生成的数字都不一样: In [17]: import ...

  3. 4、关于numpy.random.seed()的使用说明

    定义:seed( ) 用于指定随机数生成时所用算法开始的整数值,如果使用相同的seed( )值,则每次生成的随即数都相同,如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差 ...

  4. numpy.random模块常用函数解析

    numpy.random模块中常用函数解析 numpy.random模块官方文档 1. numpy.random.rand(d0, d1, ..., dn)Create an array of the ...

  5. [转]numpy.random.randn()用法

    在python数据分析的学习和应用过程中,经常需要用到numpy的随机函数,由于随机函数random的功能比较多,经常会混淆或记不住,下面我们一起来汇总学习下. import numpy as np ...

  6. NumPy的随机函数子库——numpy.random

    NumPy的随机函数子库numpy.random 导入模块:import numpy as np 1.numpy.random.rand(d0,d1,...,dn) 生成一个shape为(d0,d1, ...

  7. numpy.random模块用法总结

    from numpy import random numpy.random.uniform(low=0.0, high=1.0, size=None) 生出size个符合均分布的浮点数,取值范围为[l ...

  8. 第三节,TensorFlow 使用CNN实现手写数字识别(卷积函数tf.nn.convd介绍)

    上一节,我们已经讲解了使用全连接网络实现手写数字识别,其正确率大概能达到98%,这一节我们使用卷积神经网络来实现手写数字识别, 其准确率可以超过99%,程序主要包括以下几块内容 [1]: 导入数据,即 ...

  9. tensorflow语法笔记

    1.如何理解 tf.reduce_max或者 tf.reduce_mean中对Tensor和高维矩阵的坐标轴axis的选择的操作 tf.reduce_mean( input_tensor, axis= ...

  10. 深度学习原理与框架-Tensorflow卷积神经网络-卷积神经网络mnist分类 1.tf.nn.conv2d(卷积操作) 2.tf.nn.max_pool(最大池化操作) 3.tf.nn.dropout(执行dropout操作) 4.tf.nn.softmax_cross_entropy_with_logits(交叉熵损失) 5.tf.truncated_normal(两个标准差内的正态分布)

    1. tf.nn.conv2d(x, w, strides=[1, 1, 1, 1], padding='SAME')  # 对数据进行卷积操作 参数说明:x表示输入数据,w表示卷积核, stride ...

随机推荐

  1. Codeforce:1300B. Assigning to Classes (math)

    解题思路 题目说的意思是,给一个2n个数的数组,注意n为奇数,将这个数组平均分为2份,假设为c1和c2. c1和c2是奇数个元素的数组,比如数组[1,2,3],那么中位数就是2. 那么如何求得中位数差 ...

  2. 基于 HTML5 WebGL + WebVR 的 3D 虚拟现实可视化培训系统

    前言 2019 年 VR, AR, XR, 5G, 工业互联网等名词频繁出现在我们的视野中,信息的分享与虚实的结合已经成为大势所趋,5G 是新一代信息通信技术升级的重要方向,工业互联网是制造业转型升级 ...

  3. element-plus-admin学习笔记

    https://toscode.gitee.com/hsiangleev/element-plus-admin

  4. 引入阿里在线图标(微信小程序)

    https://www.bilibili.com/video/BV1WJ41197sD?p=49

  5. NOIP2020游记——AFO之战

    阅读时请播放此音乐,这是我精心挑选的,很适合本文. Day-0奇遇 考试前一天,不顺,很不顺,简直可以写小说了.(不想看我车店可以往下翻,Day-1在后边) 我是下午两点从齐齐哈尔出发前往省会哈尔滨的 ...

  6. Bash 常用命令总结

    基础常用命令 某个命令 --h,对这个命令进行解释 某个命令 --help,解释这个命令(更详细) man某个命令,文档式解释这个命令(更更详细)(执行该命令后,还可以按/+关键字进行查询结果的搜索) ...

  7. 电脑面试两道问题(python+shell)

    最近面试电脑代码面试遇到两个问题,供大家参考一下一.python脚本: 手写一个函数,实现两个数相加,并使用unittest与pytest工具测试函数正确性. 1.unnitest进行测试: impo ...

  8. docker 资源限制之 cgroup

    1. Liunx cgroup 使用 namespace 隔离运行环境,使得进程像在独立环境中运行一样.然而,仅有隔离环境还不够,还得限制被 namespace 隔离的资源.否则,namespace ...

  9. Angular系列教程之自定义指令

    .markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...

  10. AMBA总线介绍-01

    AMBA总线介绍 AMBA总线概述 AHB APB 不同IP之间的互连 1.系统总线简介 系统芯片中各个模块之间需要有接口连接,使用总线作为子系统之间共享的通信链路 优点:成本低,方便易用(通用协议, ...