首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >3D张量子设置操作

3D张量子设置操作
EN

Stack Overflow用户
提问于 2019-09-13 08:28:31
回答 1查看 36关注 0票数 0

我正试着在3D张量上执行特定的操作。我将在下面使用3Dnumpy数组来显示它。基本上,我想做与下面相同的操作,但是是在一个等价的张量上。

代码语言:javascript
复制
a3 = np.array([[[1,0,0],[1,0,0],[1,0,0],[1,0,0],[0,1,0],[0,1,0],[0,0,1],[0,0,1]], [[1,0,0],[1,0,0],[1,0,0],[1,0,0],[0,0,1],[0,0,1],[0,0,1],[0,0,1]], [[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]])

expression = (a3.sum(axis=(1,2)) >= 1)

a3[expression, :, 1].flatten()

它应该返回一个与初始3D张量的第一维长度相同的列表。

我试着写了一些基于tf.constant的代码,但到目前为止还没有成功。这是我的尝试:

代码语言:javascript
复制
a3 = tf.convert_to_tensor(a3)
one = tf.constant(1, dtype=tf.int32)
mask = tf.keras.backend.greater_equal(tf.keras.backend.sum(a3,axis=(1,2)),one)
tf.boolean_mask(a3,mask,axis=0)
sess = tf.compat.v1.Session()

with sess.as_default():
    assert tf.compat.v1.get_default_session() is sess
    print(a3.eval())
EN

回答 1

Stack Overflow用户

发布于 2019-09-13 08:56:35

好的,想明白了:

代码语言:javascript
复制
a3 = tf.convert_to_tensor(a3)
one = tf.constant(1, dtype=tf.int32)
mask = tf.keras.backend.greater_equal(tf.keras.backend.sum(a3,axis=(1,2)),one)
a4masked = tf.boolean_mask(a3,mask,axis=0)
a4flat = tf.reshape(a4masked, [tf.size(a4masked)])

sess = tf.compat.v1.Session()

with sess.as_default():
  assert tf.compat.v1.get_default_session() is sess
  print(a4flat.eval())
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57915955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档