machine-learning - 如何使用 to_categorical 将 [[4,7,10],[10,20,30]] 转换为一种热编码
问题描述
我正在研究 LSTM。
输出是分类的。
其格式为 [[t11,t12,t13],[t21,t22,t23]
我能够为 1d 阵列做到这一点,但我发现很难为 2d 阵列做到这一点。
from keras.utils import to_categorical
print(to_categorical([[9,10,11],[10,11,12]]))
输出
[[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]]
有两个不同的输入,每个都有 3 个时间步长,但在输出中它们全部组合在一起。
我需要它,
[[[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]],
[[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]]]
解决方案
我意识到我可以通过重塑来实现我想要的,
print(a.reshape(2,3,13))
[[[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]]
[[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]]]
推荐阅读
- html - 试图控制文本在输入中的位置
- unix - 在未排序的列上使用 awk(或任何其他 unix 命令)加入两个以上的文件
- flutter - 在 Flutter 中使用 push 与 pushNamed 的优缺点
- xslt-1.0 - 使用 XSLT 删除两个重复记录
- mediawiki - 我怎样才能获得西班牙语的维基页面文章列表?
- haskell - 在尖头容器上随机游走
- python - 如何修复“禁止 (403) CSRF 验证失败。请求中止。” django中的错误
- google-sheets - 谷歌表平均函数计算不正确
- jquery - 从无序列表中的列表项中 Jsonifying 指定属性
- java - 即使定义了超时,Postgres JDBC 线程仍停留在 java.net.SocketInputStream.socketRead0