tensor

Tensorflow中InceptionV3模型迁移学习获取tensor的name

匿名 (未验证) 提交于 2019-12-03 00:27:02
InceptionV3模型迁移学习的过程中,因为需要获取不同层次tensor的值,所以需要获取各层的name。之后才可以在迁移学习的过程中根据不同的层次输出结果,重新训练相应的模型 以下代码可以实现的功能: tensorflow重新载入google提供的inceptionV3的pb模型文件 (不是cpkt模型) 读取pb文件的结构并print出tensor的name和值 存入txt文件中 #读取pb模型并print出tensor的name和值到txt文件中 import tensorflow as tf from tensorflow.python.framework import graph_util tf.reset_default_graph()#重置计算图 logdir="E:\DeepLearning\Git\cnn\inception_dec_2015\\" output_graph_path = logdir +'tensorflow_inception_graph.pb' doc=open('inceptionV3_tensorName.txt','w') #建立写入文件的文件,'w'为写入模式 with tf.Session() as sess: # with tf.gfile.FastGFile(output_graph_path, 'rb') as f: #

win10 解决WARNING (theano.tensor.blas): Using NumPy C-API based implementation for BLAS functions.

匿名 (未验证) 提交于 2019-12-03 00:26:01
WARNING (theano.tensor.blas): Using NumPy C-API based implementation for BLAS functions. solution: cmd conda install mkl conda install mkl-servic conda install blas .theanorc.txt ldflags=-lmkl_rt 或者 ldflags=-lblas 文章来源: win10 解决WARNING (theano.tensor.blas): Using NumPy C-API based implementation for BLAS functions.

tensorflow.nn.bidirectional_dynamic_rnn()函数的用法

匿名 (未验证) 提交于 2019-12-03 00:22:01
转载请标明出处: http://blog.csdn.net/wuzqchom/article/details/75453327 在参加知乎比赛的时候感觉CNN调参已经差不多快到天花板了,于是试下双向的RNN。使用tensorflow.nn.bidirectional_dynamic_rnn()这个函数,就可以很方便的实现双向LSTM,很简洁。 首先来看一下,函数: def bidirectional_dynamic_rnn( cell_fw, # 前向RNN cell_bw, # 后向RNN inputs, # 输入 sequence_length =None,# 输入序列的实际长度(可选,默认为输入序列的最大长度) initial_state_fw =None, # 前向的初始化状态(可选) initial_state_bw =None, # 后向的初始化状态(可选) dtype =None, # 初始化和输出的数据类型(可选) parallel_iterations =None, swap_memory =False, time_major =False, # 决定了输入输出tensor的格式:如果为true, 向量的形状必须为 `[max_time, batch_size, depth]`. # 如果为false, tensor的形状必须为`[batch_size, max

TensorFlow函数:tf.scatter_nd

匿名 (未验证) 提交于 2019-12-03 00:22:01
tf.scatter_nd 函数 scatter_nd( indices, updates, shape, name=None ) 参见指南: 张量变换>分割和连接 根据indices将updates散布到新的(初始为零)张量。 根据索引对给定shape的零张量中的单个值或切片应用稀疏updates来创建新的张量。此运算符是 tf.gather_nd 运算符的反函数,它从给定的张量中提取值或切片。 警告:更新应用的顺序是非确定性的,所以如果indices包含重复项的话,则输出将是不确定的。 indices是一个整数张量,其中含有索引形成一个新的形状shape张量。indices的最后的维度可以是shape的最多的秩: indices.shape[ -1 ] <= shape.rank indices.shape[: -1 ] + shape[indices.shape[ -1 ]:] 最简单的分散形式是通过索引将单个元素插入到张量中。例如,假设我们想要在8个元素的1级张量中插入4个分散的元素。 在Python中,这个分散操作看起来像这样: indices = tf.constant([[ 4 ], [ 3 ], [ 1 ], [ 7 ]]) updates = tf.constant([ 9 , 10 , 11 , 12 ]) shape = tf.constant([ 8 ])

对于ConvLSTM的理解

匿名 (未验证) 提交于 2019-12-03 00:22:01
ConvLSTM最早是在《Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting》论文里提出,目的是为了解决降水临近预报。这个问题可以看做是一个时序问题,于是有学者尝试使用LSTM解决这个问题。 但是其使用的事全连接长短期记忆网络(FC-LSTM),没有考虑到空间上的相关性,并且包含了大量冗余的空间数据。 针对上述问题,论文提出一种ConvLSTM结构,不仅可以向LSTM一样建立时序关系,而且可以像CNN一样刻画局部空间特征。并且作者通过实验 证明了ConvLSTM在获取时空关系上比LSTM有更好的效果。 LSTM LSTM的公式如下,其中o表示的是Hadamard乘法,表示的是矩阵对应元素相乘 对于LSTM不太理解的可以参考我前面一篇文章: LSTM原理及实现 ConvLSTM ConvLSTM核心本质还是和LSTM一样,将上一层的输出作下一层的输入。不同的地方在于加上卷积操作之后,为不仅能够得到时序关系,还能够像卷积层一样提取特征,提取空间特征。这样就能够得到时空特征。并且将状态与状态之间的切换也换成了卷积计算。其中”*”表示卷积计算。 需要注意的是这里的 X , C , H , i , f , o X,C,H,i,f,o 都是三维的tensor

Tensorflow API 讲解――tf.estimator.Estimator

匿名 (未验证) 提交于 2019-12-03 00:22:01
class Estimator(builtins.object) Estimator 类,用来训练和验证 TensorFlow 模型。 Estimator 对象包含了一个模型 model_fn ,这个模型给定输入和参数,会返回训练、验证或者预测等所需要的操作节点。 所有的输出(检查点、事件文件等)会写入到 model_dir ,或者其子文件夹中。如果 model_dir 为空,则默认为临时目录。 config 参数为 tf.estimator.RunConfig 对象,包含了执行环境的信息。如果没有传递 config ,则它会被 Estimator 实例化,使用的是默认配置。 params 包含了超参数。 Estimator 只传递超参数,不会检查超参数,因此 params 的结构完全取决于开发者。 Estimator 的所有方法都不能被子类覆盖(它的构造方法强制决定的)。子类应该使用 model_fn 来配置母类,或者增添方法来实现特殊的功能。 Estimator 不支持 Eager Execution(eager execution能够使用Python 的debug工具、数据结构与控制流。并且无需使用placeholder、session,计算结果能够立即得出)。 1、 __init__(self, model_fn, model_dir=None, config=None,

Pytorch学习----认识张量

匿名 (未验证) 提交于 2019-12-03 00:15:02
一、Tensor概念 标量:是一个常数,为0维张量 向量:是一行或者一列数组成,为1维张量 矩阵:包含行和列两个维度。是2维张量。 torch.Tensor包含的属性: dtype:张量的数据类型,如torch.FloatTensor shape:张量的形状,如(64, 3, 224, 224) device:张量所在的设备,GPU/CPU data:被包装的Tensor grad:data的梯度 grad_fn:创建Tensor的Function,是自动求导的关键 requires_grad:指示是否需要梯度 is_leaf:指示是否是叶子结点 二、Tensor创建:直接创建 1. torch.tensor(data, dtype=None, device=None) 功能 :从data创建tensor 参数 : data:数据,可以是list,numpy dtype:数据类型,默认与data一致 device:所在设备,cpu或gpu requires_grad:是否需要梯度 pin_memory:是否存于锁页内存 import torch import numpy as np arr = np.ones((3, 3)) print("arr的数据类型:", arr.dtype) t = torch.tensor(arr) print("t的数据类型:", t.dtype)

Pytorch - nn.init 参数初始化方法

匿名 (未验证) 提交于 2019-12-03 00:15:02
torch.nn.init 初始化函数 import torch import torch.nn as nn w = torch.empty(2, 3) # 1. 均匀分布 - u(a,b) # torch.nn.init.uniform_(tensor, a=0, b=1) nn.init.uniform_(w) # tensor([[ 0.0578, 0.3402, 0.5034], # [ 0.7865, 0.7280, 0.6269]]) # 2. 正态分布 - N(mean, std) # torch.nn.init.normal_(tensor, mean=0, std=1) nn.init.normal_(w) # tensor([[ 0.3326, 0.0171, -0.6745], # [ 0.1669, 0.1747, 0.0472]]) # 3. 常数 - 固定值 val # torch.nn.init.constant_(tensor, val) nn.init.constant_(w, 0.3) # tensor([[ 0.3000, 0.3000, 0.3000], # [ 0.3000, 0.3000, 0.3000]]) # 4. 对角线为 1,其它为 0 # torch.nn.init.eye_(tensor) nn.init.eye_(w) #