- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用tensorflow构建mnist数据集的y_train的单热编码。我不明白该怎么做?
# unique values 0 - 9
y_train = array([5, 0, 4, ..., 5, 6, 8], dtype=uint8)
在keras
中,我们会做类似的事情
# this converts it into one hot encoding
one hot_encoding = tf.keras.utils.to_categorical(y_train)
在tf.one_hot
中,我应该向indices
和深度
参数输入什么?完成一次热编码后,如何将其从 2d-tensor 转换回 numpy 数组?
最佳答案
我不熟悉 Tensorflow,但经过一些测试,这是我发现的:
tf.one_hot()
接受一个索引
和一个深度
。 索引
是实际转换为one-hot编码的值。 深度
是指要利用的最大值。
例如,采用以下代码:
y = [1, 2, 3, 2, 1]
tf.keras.utils.to_categorical(y)
sess = tf.Session();
with sess.as_default():
print(tf.one_hot(y, 2).eval())
print(tf.one_hot(y, 4).eval())
print(tf.one_hot(y, 6).eval())
tf.keras.utils.to_categorical(y)
返回以下内容:
array([[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.],
[0., 0., 1., 0.],
[0., 1., 0., 0.]], dtype=float32)
相比之下,tf.one_hot()
选项(2、4 和 6)执行以下操作:
[[0. 1.]
[0. 0.]
[0. 0.]
[0. 0.]
[0. 1.]]
[[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]
[0. 0. 1. 0.]
[0. 1. 0. 0.]]
[[0. 1. 0. 0. 0. 0.]
[0. 0. 1. 0. 0. 0.]
[0. 0. 0. 1. 0. 0.]
[0. 0. 1. 0. 0. 0.]
[0. 1. 0. 0. 0. 0.]]
从这里可以看出,使用 tf.one_hot()
来模拟 tf.keras.utils.to_categorical()
,深度
参数应等于数组中存在的最大值,+1 表示 0。在本例中,最大值为 3,因此编码中有四个可能的值 - 0、1、2 和 3。因此,需要深度为 4 来表示 one-hot 编码中的所有这些值。
至于转换为 numpy,如上所示,使用 Tensorflow session ,在张量上运行 eval()
将其转换为 numpy 数组。有关执行此操作的方法,请参阅 How can I convert a tensor into a numpy array in TensorFlow? .
我不熟悉 Tensorflow,但希望这会有所帮助。
注意:对于 MNIST 而言,深度 10 就足够了。
关于python - 如何使用 tf.one_hot 计算一种热编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56695125/
我在网上学习 keras 时遇到了这段代码。 from keras.preprocessing.text import one_hot from keras.preprocessing.text im
我阅读了 docs of tf.one_hot 并发现 ... . The new axis is created at dimension axis (default: the new axis i
我正在尝试创建一个具有整数输出的自定义损失函数(在损失函数中转换为一个热编码)。 但问题是 one_hot 没有可微分的梯度。有任何解决方法吗? def new_loss(hidden, output
我想将 pandas df 转换为 One_hot pandas df。最好的描述方式可能是举个例子: 我的 df 看起来像这样: ID|DEV |STATE| 1 |DEV1|on 2 |DEV2|
我正在尝试使用 ["aa", "aa", "bb", "bb", "bb", "cc"] 形式的字符串标签拟合模型,并希望使用 tf.one_hot(labels, depth=3) 获取一个热向量,
我正在基于他们的 MNIST 初学者模板开发一个 Tensorflow 网络。基本上,我试图实现一个简单的逻辑回归,其中 10 个连续变量预测二元结果,因此我的输入是 0 到 1 之间的 10 个值,
当我做分类工作时,我需要用one_hot方法编码一个classid。但是我应该使用 tf.one_hot 函数将背景类编码为 -1 或 0 吗? 例如: // plan a logits = [0.1
我正在尝试使用tensorflow构建mnist数据集的y_train的单热编码。我不明白该怎么做? # unique values 0 - 9 y_train = array([5, 0, 4, .
我尝试运行 tf.one_hot,出现 CUDA_ERROR_LAUNCH_FAILED 错误。详情如下: 示例代码: import tensorflow as tf idx_0 = tf.place
我有以下 Python 测试程序: import tensorflow as tf sess = tf.InteractiveSession() # Some tensor we want to pr
我正在尝试训练分类(one_hot) Action (call/fold/raise)和时间的时间序列的 LSTM 层数据模型。 例如 3 轮的时间序列,其中玩家 2x 跟注然后弃牌。 #Call
我正在尝试使用 cntk.utils.one_hot 如下: # actions is numpy array of shape (32, 1) and _output_shape is 6 acti
train_label = tf.keras.backend.one_hot(train_label,3) train_label = tf.one_hot(train_label,3) 在tens
我是一名优秀的程序员,十分优秀!