Tensorflow实现将标签变为实现将标签变为one-hot形式形式
主要介绍了Tensorflow实现将标签变为one-hot形式,具有很好的参考价值,希望对大家有所帮助。一起跟随小
编过来看看吧
将数据标签变为类似MNIST的one-hot编码形式
def one_hot(indices,
depth,
on_value=None,
off_value=None,
axis=None,
dtype=None,
name=None):
"""Returns a one-hot tensor.
The locations represented by indices in `indices` take value
`on_value`,
while all other locations take value `off_value`.
`on_value` and `off_value` must have matching data types. If
`dtype` is also
provided, they must be the same data type as specified by
`dtype`.
If `on_value` is not provided, it will default to the value `1` with
type
`dtype`
If `off_value` is not provided, it will default to the value `0` with
type
`dtype`
If the input `indices` is rank `N`, the output will have rank
`N+1`. The
new axis is created at dimension `axis` (default: the new axis is
appended
at the end).
If `indices` is a scalar the output shape will be a vector of
length `depth`
If `indices` is a vector of length `features`, the output shape will
be:
```
features x depth if axis == -1
depth x features if axis == 0
```
If `indices` is a matrix (batch) with shape `[batch, features]`, the
output
shape will be:
```
batch x features x depth if axis == -1
batch x depth x features if axis == 1
depth x batch x features if axis == 0
```
If `dtype` is not provided, it will attempt to assume the data
type of
`on_value` or `off_value`, if one or both are passed in. If none
of
`on_value`, `off_value`, or `dtype` are provided, `dtype` will
default to the
value `tf.float32`.
Note: If a non-numeric data type output is desired (`tf.string`,
`tf.bool`,
etc.), both `on_value` and `off_value` _must_ be provided to
`one_hot`.
For example:
```python
indices = [0, 1, 2]
depth = 3
tf.one_hot(indices, depth) # output: [3 x 3]