And*_*bis 31 python tensorflow
将2D张量实际上是水平或垂直向量展平为1D张量的最有效方法是什么?
在以下方面的表现是否有所不同:
tf.reshape(w, [-1])
Run Code Online (Sandbox Code Playgroud)
和
tf.squeeze(w)
Run Code Online (Sandbox Code Playgroud)
?
mrr*_*rry 47
这两个tf.reshape(w, [-1])和tf.squeeze(w)是"便宜",因为它们在给定的张量的元数据(即形状)只经营,并且不修改数据本身.其中两个内部逻辑tf.reshape()稍微简单,但两者的性能应该难以区分.
小智 9
对于简单的 2D 张量,两者的功能应该相同,如 @sv_jan5 所提到的。但是,请注意,tf.squeeze(w)在多层张量的情况下,仅挤压第一层,而tf.reshape(w,[-1])无论深度如何,都会展平整个张量。
例如,让我们看看
w = [[1,2,],[3,4]]
Run Code Online (Sandbox Code Playgroud)
现在两个函数的输出将不再相同。tf.squeeze(w)将输出
<tf.Tensor: shape=(2, 2), dtype=int32, numpy=
array([[1, 2],
[3, 4]], dtype=int32)>
Run Code Online (Sandbox Code Playgroud)
同时tf.reshape(w,[-1])会输出
<tf.Tensor: shape=(4,), dtype=int32, numpy=array([1, 2, 3, 4], dtype=int32)>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23642 次 |
| 最近记录: |