如何在TensorFlow中创建掩码张量?

为给定索引创建具有特定深度的张量,并将其值设为1

索引张量:

[[1 3] [2 4] [0 4]]

输出张量(深度=5):

[[0. 1. 0. 1. 0.] [0. 0. 1. 0. 1.] [1. 0. 0. 0. 1.]]

回答:

你可以通过首先转换为完整索引,然后使用sparse_to_dense函数将这些索引值设为1来实现上述效果。

#获取完整索引
mesh = tf.meshgrid(tf.range(indices.shape[1]), tf.range(indices.shape[0]))[1]
full_indices = tf.reshape(tf.stack([mesh, indices], axis=2), [-1,2])
#输出
#[[0 1] [0 3] [1 2] [1 4] [2 0] [2 4]]
#使用上述索引并将输出设为1。
#depth_x = 3, depth_y = 5
dense = tf.sparse_to_dense(full_indices,tf.constant([depth_x,depth_y]), tf.ones(tf.shape(full_indices)[0]))
# 输出
#[[0. 1. 0. 1. 0.]
#[0. 0. 1. 0. 1.]
#[1. 0. 0. 0. 1.]]

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注