tensorflow API 使用总结

1.tf.set_random_seed(5)

解释:

设置图形级随机seed.

可以从两个seed中获得依赖随机seed的操作:图形级seed和操作级seed.本节是介绍如何设置图形级别的seed.

它与操作级别seed的交互如下:

  1. 如果既没有设置图层级也没有设置操作级别的seed:则使用随机seed进行该操作.
  2. 如果设置了图形级seed,但操作seed没有设置:系统确定性地选择与图形级seed结合的操作seed,以便获得唯一的随机序列.
  3. 如果未设置图形级seed,但设置了操作seed:使用默认的图层seed和指定的操作seed来确定随机序列.
  4. 如果图层级seed和操作seed都被设置:则两个seed将一起用于确定随机序列.

图形级session 和操作及session的一句话总结:

图形级session对于整个graph都起作用的
操作级session设置后只对某个操作符号有用,如 a = tf.random_uniform([1], seed=1)



#图形级session
tf.set_random_seed(1234)
a = tf.random_uniform([1])
b = tf.random_normal([1])

# Repeatedly running this block with the same graph will generate the same
# sequences of 'a' and 'b'.
print("Session 1")
with tf.Session() as sess1:
  print(sess1.run(a))  # generates 'A1'
  print(sess1.run(a))  # generates 'A2'
  print(sess1.run(b))  # generates 'B1'
  print(sess1.run(b))  # generates 'B2'

print("Session 2")
with tf.Session() as sess2:
  print(sess2.run(a))  # generates 'A1'
  print(sess2.run(a))  # generates 'A2'
  print(sess2.run(b))  # generates 'B1'
  print(sess2.run(b))  # generates 'B2'

#操作级session
a = tf.random_uniform([1], seed=1)
b = tf.random_normal([1])

# Repeatedly running this block with the same graph will generate the same
# sequence of values for 'a', but different sequences of values for 'b'.
print("Session 1")
with tf.Session() as sess1:
  print(sess1.run(a))  # generates 'A1'
  print(sess1.run(a))  # generates 'A2'
  print(sess1.run(b))  # generates 'B1'
  print(sess1.run(b))  # generates 'B2'

print("Session 2")
with tf.Session() as sess2:
  print(sess2.run(a))  # generates 'A1'
  print(sess2.run(a))  # generates 'A2'
  print(sess2.run(b))  # generates 'B3'
  print(sess2.run(b))  # generates 'B4'

参见:https://www.w3cschool.cn/tensorflow_python/tensorflow_python-fqc42jvo.html

2. tf.expand_dims()

expand_dims(
    input,
    axis=None,
    name=None,
    dim=None
)

说明:给定一个张量 input,此操作在 input 的形状的维度索引轴中插入1个维度.该维度的索引轴从零开始;如果为该坐标轴指定负数,它将从末尾向后计数.

 3.tf.squeeze()

squeeze(
    input,
    axis=None,
    name=None,
    squeeze_dims=None
)

从张量形状中移除大小为1的维度.

给定一个张量 input,返回一个张量(删除了原张量中所有维度为1 的维度),如果不想全部删除,则可以指定axis

4.tf.pack()

目前替换为 tf.stack()

tf.stack(
    values,
    axis=0,
    name='stack'
)

将秩为 R 的张量列表堆叠成一个秩为 (R+1) 的张量.

将 values 中的张量列表打包成一个张量,该张量比 values 中的每个张量都高一个秩,通过沿 axis 维度打包.给定一个形状为(A, B, C)的张量的长度 N 的列表;

如果 axis == 0,那么 output 张量将具有形状(N, A, B, C).如果 axis == 1,那么 output 张量将具有形状(A, N, B, C).

 

5.cnn中的tensor的维度问题

tf.nn.conv2d()

tf.nn.conv2d(
    input,
    filter,
    strides,
    padding,
    use_cudnn_on_gpu=True,
    data_format='NHWC',
    dilations=[1, 1, 1, 1],
    name=None
)
参数:

input:一个Tensor,必须是下列类型之一:half,bfloat16,float32,float64;一个4-D张量,维度顺序根据data_format值进行解释,详见下文.
filter:一个Tensor,必须与input相同,形状为[filter_height, filter_width, in_channels, out_channels]的4-D张量.
strides:ints列表,长度为4的1-D张量,input的每个维度的滑动窗口的步幅;维度顺序由data_format值确定,详见下文.
padding:string,可以是:"SAME", "VALID",要使用的填充算法的类型.
use_cudnn_on_gpu:bool,默认为True.
data_format:string,可以是"NHWC", "NCHW",默认为"NHWC";指定输入和输出数据的数据格式;使用默认格式“NHWC”,数据按以下顺序存储:[batch, height, width, channels];或者,格式可以是“NCHW”,数据存储顺序为:[batch, channels, height, width].
dilations:ints的可选列表,默认为[1, 1, 1, 1],长度为4的1-D张量,input的每个维度的扩张系数;如果设置为k> 1,则该维度上的每个滤镜元素之间将有k-1个跳过的单元格;维度顺序由data_format值确定,详见上文;批次和深度尺寸的扩张必须为1.
name:操作的名称(可选).
返回:

一个Tensor,与input具有相同的类型.

 

计算给定的4-D input和filter张量的2-D卷积.

给定形状为[batch, in_height, in_width, in_channels]的输入张量和形状为[filter_height, filter_width, in_channels, out_channels]的滤波器/内核张量 做卷积操作

对于shape的格式,python中四维矩阵是[batch, in_channels,in_height, in_width],所以将python的4维矩阵转换成tensorflow的4维矩阵,需要做转置操作

6.tf.nn.max_pool() [目的是降维]

tf.nn.max_pool(
    value,
    ksize,
    strides,
    padding,
    data_format='NHWC',
    name=None
)
value:由data_format指定格式的4-D Tensor. batch_size, height_1, width_1, channels]
ksize:具有4个元素的1-D整数Tensor.输入张量的每个维度的窗口大小.  [1, height_2, width_2, 1]
strides:具有4个元素的1-D整数Tensor.输入张量的每个维度的滑动窗口的步幅.  [1, stride_height, stride_width, 1]
padding:一个字符串,可以是'VALID'或'SAME'.填充算法.
data_format:一个字符串.支持'NHWC','NCHW'和'NCHW_VECT_C'.
name:操作的可选名称.

返回的维度:
[batch_size, height_1 - height_2,width_1 - width_2, channels]

7.tf.ConfigProto() 的使用

https://blog.csdn.net/dcrmg/article/details/79091941

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值