- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
有一段时间没用tensorflow了,现在跑实验还是存在一些坑了,主要是关于张量计算的问题。tensorflow升级1.0版本后与以前的版本并不兼容,可能出现各种奇奇怪怪的问题.
1 tf.concat函数 。
tensorflow1.0以前函数用法:tf.concat(concat_dim, values, name='concat'),第一个参数为连接的维度,可以将几个向量按指定维度连接起来.
如:
1
2
3
4
5
6
|
t1
=
[[
1
,
2
,
3
], [
4
,
5
,
6
]]
t2
=
[[
7
,
8
,
9
], [
10
,
11
,
12
]]
#按照第0维连接
tf.concat(
0
, [t1, t2])
=
=
> [[
1
,
2
,
3
], [
4
,
5
,
6
], [
7
,
8
,
9
], [
10
,
11
,
12
]]
#按照第1维连接
tf.concat(
1
, [t1, t2])
=
=
> [[
1
,
2
,
3
,
7
,
8
,
9
], [
4
,
5
,
6
,
10
,
11
,
12
]]
|
tf.concat的作用主要是将向量按指定维连起来,其余维度不变;而1.0版本以后,函数的用法变成:
1
2
3
4
5
6
|
t1
=
[[
1
,
2
,
3
], [
4
,
5
,
6
]]
t2
=
[[
7
,
8
,
9
], [
10
,
11
,
12
]]
#按照第0维连接
tf.concat( [t1, t2],
0
)
=
=
> [[
1
,
2
,
3
], [
4
,
5
,
6
], [
7
,
8
,
9
], [
10
,
11
,
12
]]
#按照第1维连接
tf.concat([t1, t2],
1
)
=
=
> [[
1
,
2
,
3
,
7
,
8
,
9
], [
4
,
5
,
6
,
10
,
11
,
12
]]
|
位置变了,需要注意.
2 tf.stack函数 。
用法:stack(values, axis=0, name=”stack”)
“”“Stacks a list of rank-R tensors into one rank-(R+1) tensor. 。
1
2
3
4
5
6
|
x
=
tf.constant([
1
,
4
])
y
=
tf.constant([
2
,
5
])
z
=
tf.constant([
3
,
6
])
tf.stack([x,y,z])
=
=
> [[
1
,
4
],[
2
,
5
],[
3
,
6
]]
tf.stack([x,y,z],axis
=
0
)
=
=
> [[
1
,
4
],[
2
,
5
],[
3
,
6
]]
tf.stack([x,y,z],axis
=
1
)
=
=
> [[
1
,
2
,
3
], [
4
,
5
,
6
]]
|
tf.stack将一组R维张量变为R+1维张量。注意:tf.pack已经变成了tf.stack 。
3.tf.reshape 。
用法:reshape(tensor, shape, name=None):主要通过改变张量形状,可以从高维变低维,也可以从低维变高维; 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
a
=
tf.Variable(initial_value
=
[[
1
,
2
,
3
],[
4
,
5
,
6
]])
=
=
> shape:[
2
,
3
]
b
=
tf.Variable(initial_value
=
[[[
1
,
2
,
3
],[
4
,
5
,
6
]],[[
7
,
8
,
9
],[
1
,
0
,
2
]]])
=
=
> shape:[
2
,
2
,
3
]
a_1
=
tf.reshape(a,[
2
,
1
,
1
,
3
])
=
=
> [[[[
1
,
2
,
3
]]],[[[
4
,
5
,
6
]]]]
a_2
=
tf.reshape(a,[
2
,
1
,
3
])
=
=
> [[[
1
,
2
,
3
]],[[
4
,
5
,
6
]]]
b_1
=
tf.reshape(b,[
2
,
2
,
1
,
3
])
=
=
> [[[[
1
,
2
,
3
]],[[
4
,
5
,
6
]]],[[[
7
,
8
,
9
]],[[
1
,
0
,
2
]]]]
new_1
=
tf.concat([b_1,a_1],
1
)
new_2
=
tf.reshape(tf.concat([b,a_2],
1
),[
2
,
3
,
1
,
3
])
"""
new_1:
[[[[
1
2
3
]]
[[
4
5
6
]]
[[
1
2
3
]]]
[[[
7
8
9
]]
[[
1
0
2
]]
[[
4
5
6
]]]]
new_2;
[[[[
1
2
3
]]
[[
4
5
6
]]
[[
1
2
3
]]]
[[[
7
8
9
]]
[[
1
0
2
]]
[[
4
5
6
]]]]
|
补充知识:tensorflow中的reshape(tensor,[1,-1])和reshape(tensor,[-1,1]) 。
和python 中的reshape用法应该一样 。
1
2
3
4
5
6
|
import
tensorflow as tf
a
=
[[
1
,
2
],[
3
,
4
],[
5
,
6
]]
tf.reshape(a,[
-
1
,
1
])
Out[
13
]: <tf.Tensor
'Reshape_4:0'
shape
=
(
6
,
1
) dtype
=
int32>
tf.reshape(tf.reshape(a,[
-
1
,
1
]),[
1
,
-
1
])
Out[
14
]: <tf.Tensor
'Reshape_6:0'
shape
=
(
1
,
6
) dtype
=
int32>
|
tf.reshape(tensor,[-1,1])将张量变为一维列向量 。
tf.reshape(tensor,[1,-1])将张量变为一维行向量 。
以上这篇浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.
原文链接:https://blog.csdn.net/a18852867035/article/details/79048684 。
最后此篇关于浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack的文章就讲到这里了,如果你想了解更多关于浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我想将模型及其各自训练的权重从 tensorflow.js 转换为标准 tensorflow,但无法弄清楚如何做到这一点,tensorflow.js 的文档对此没有任何说明 我有一个 manifest
我有一个运行良好的 TF 模型,它是用 Python 和 TFlearn 构建的。有没有办法在另一个系统上运行这个模型而不安装 Tensorflow?它已经经过预训练,所以我只需要通过它运行数据。 我
当执行 tensorflow_model_server 二进制文件时,它需要一个模型名称命令行参数,model_name。 如何在训练期间指定模型名称,以便在运行 tensorflow_model_s
我一直在 R 中使用标准包进行生存分析。我知道如何在 TensorFlow 中处理分类问题,例如逻辑回归,但我很难将其映射到生存分析问题。在某种程度上,您有两个输出向量而不是一个输出向量(time_t
Torch7 has a library for generating Gaussian Kernels在一个固定的支持。 Tensorflow 中有什么可比的吗?我看到 these distribu
在Keras中我们可以简单的添加回调,如下所示: self.model.fit(X_train,y_train,callbacks=[Custom_callback]) 回调在doc中定义,但我找不到
我正在寻找一种在 tensorflow 中有条件打印节点的方法,使用下面的示例代码行,其中每 10 个循环计数,它应该在控制台中打印一些东西。但这对我不起作用。谁能建议? 谢谢,哈米德雷萨, epsi
我想使用 tensorflow object detection API 创建我自己的 .tfrecord 文件,并将它们用于训练。该记录将是原始数据集的子集,因此模型将仅检测特定类别。我不明白也无法
我在 TensorFlow 中训练了一个聊天机器人,想保存模型以便使用 TensorFlow.js 将其部署到 Web。我有以下内容 checkpoint = "./chatbot_weights.c
我最近开始学习 Tensorflow,特别是我想使用卷积神经网络进行图像分类。我一直在看官方仓库中的android demo,特别是这个例子:https://github.com/tensorflow
我目前正在研究单图像超分辨率,并且我设法卡住了现有的检查点文件并将其转换为 tensorflow lite。但是,使用 .tflite 文件执行推理时,对一张图像进行上采样所需的时间至少是使用 .ck
我注意到 tensorflow 的 api 中已经有批量标准化函数。我不明白的一件事是如何更改训练和测试之间的程序? 批量归一化在测试和训练期间的作用不同。具体来说,在训练期间使用固定的均值和方差。
我创建了一个模型,该模型将 Mobilenet V2 应用于 Google colab 中的卷积基础层。然后我使用这个命令转换它: path_to_h5 = working_dir + '/Tenso
代码取自:- http://adventuresinmachinelearning.com/python-tensorflow-tutorial/ import tensorflow as tf fr
好了,所以我准备在Tensorflow中运行 tf.nn.softmax_cross_entropy_with_logits() 函数。 据我了解,“logit”应该是概率的张量,每个对应于某个像素的
tensorflow 服务构建依赖于大型 tensorflow ;但我已经成功构建了 tensorflow。所以我想用它。我做这些事情:我更改了 tensorflow 服务 WORKSPACE(org
Tensoflow 嵌入层 ( https://www.tensorflow.org/api_docs/python/tf/keras/layers/Embedding ) 易于使用, 并且有大量的文
我正在尝试使用非常大的数据集(比我的内存大得多)训练 Tensorflow 模型。 为了充分利用所有可用的训练数据,我正在考虑将它们分成几个小的“分片”,并一次在一个分片上进行训练。 经过一番研究,我
根据 Sutton 的书 - Reinforcement Learning: An Introduction,网络权重的更新方程为: 其中 et 是资格轨迹。 这类似于带有额外 et 的梯度下降更新。
如何根据条件选择执行图表的一部分? 我的网络有一部分只有在 feed_dict 中提供占位符值时才会执行.如果未提供该值,则采用备用路径。我该如何使用 tensorflow 来实现它? 以下是我的代码
我是一名优秀的程序员,十分优秀!