tf.one_hot()使用
2017-10-11 19:41
246 查看
tf.one_hot在看conditionGAN的时候注意到label的输入要把它转换成one-hot形式,再与噪声z进行tf.concat输入,之前看的时候忽略了,现在再看才算明白为什么。
代码
感觉实际用的时候可以不传入axis值。可以看到经过one-hot的处理,输入的维度变成了10×depth,值也变成了0和1.
下面说在condition GAN中要输入标签信息y,怎样处理的。
y是mnist的标签值,0和10之间的整数,尺寸为[BATCH],经过one-hot处理后维度变成了[BATCH,10]值也是0和1,此时再与噪声z按列(axis=1)连接,变成条件GAN的输入。因此one-hot操作是必须的,这个处理在infoGAN中将z,categorical latent code、continuous latent code连接在一起输入也要用到。
tf.one_hot( indices,#输入,这里是一维的 depth,# one hot dimension. on_value=None,#output 默认1 off_value=None,#output 默认0 axis=None,#根据我的实验,默认为1 dtype=None, name=None )
代码
import tensorflow as tf import numpy as np z=np.random.randint(0,10,size=[10]) y=tf.one_hot(z,10,on_value=1,off_value=None,axis=0) with tf.Session()as sess: print(z) print(sess.run(y)) [5 7 7 0 5 5 2 0 0 0] [[0 0 0 1 0 0 0 1 1 1] [0 0 0 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] [0 0 0 0 0 0 0 0 0 0] [1 0 0 0 1 1 0 0 0 0] [0 0 0 0 0 0 0 0 0 0] [0 1 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 0 0 0]]
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import tensorflow as tf import numpy as np import os os.environ["CUDA_VISIBLE_DEVICES"] = "2" z=np.random.randint(0,10,size=[10]) y=tf.one_hot(z,10,on_value=1,off_value=None) y1=tf.one_hot(z,10,on_value=1,off_value=None,axis=1) with tf.Session()as sess: print(z) print(sess.run(y)) print("axis=1按行排", sess.run(y1)) [6 3 4 9 6 5 5 1 2 1] [[0 0 0 0 0 0 1 0 0 0] [0 0 0 1 0 0 0 0 0 0] [0 0 0 0 1 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 1] [0 0 0 0 0 0 1 0 0 0] [0 0 0 0 0 1 0 0 0 0] [0 0 0 0 0 1 0 0 0 0] [0 1 0 0 0 0 0 0 0 0] [0 0 1 0 0 0 0 0 0 0] [0 1 0 0 0 0 0 0 0 0]] axis=1按行排 [[0 0 0 0 0 0 1 0 0 0] [0 0 0 1 0 0 0 0 0 0] [0 0 0 0 1 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 1] [0 0 0 0 0 0 1 0 0 0] [0 0 0 0 0 1 0 0 0 0] [0 0 0 0 0 1 0 0 0 0] [0 1 0 0 0 0 0 0 0 0] [0 0 1 0 0 0 0 0 0 0] [0 1 0 0 0 0 0 0 0 0]]
感觉实际用的时候可以不传入axis值。可以看到经过one-hot的处理,输入的维度变成了10×depth,值也变成了0和1.
下面说在condition GAN中要输入标签信息y,怎样处理的。
y是mnist的标签值,0和10之间的整数,尺寸为[BATCH],经过one-hot处理后维度变成了[BATCH,10]值也是0和1,此时再与噪声z按列(axis=1)连接,变成条件GAN的输入。因此one-hot操作是必须的,这个处理在infoGAN中将z,categorical latent code、continuous latent code连接在一起输入也要用到。
y = tf.one_hot(y, 10, name='label_onehot') z = tf.random_uniform([BATCH, 100], -1, 1, name='z_train') tf.concat([z, y], 1)
相关文章推荐
- 朴素贝叶斯理论、One-Hot表达与TF-IDF算法
- one-hot使用体会
- tf.one_hot 实例
- tensorflow API: tf.one_hot
- tf.one_hot(indices, depth, on_value=None, off_value=None, axis=None)
- tensorflow——tf.one_hot以及tf.sparse_to_dense函数
- tf.one_hot()函数简介
- pandas使用get_dummies进行one-hot编码的方法
- 使用numpy生成one_hot
- Tensorflow 的tf.one_hot()功能:dense to one hot
- 【tensorflow】tf.one_hot,tf.reduce_mean,tf.argmax,tf.equal,tf.cast学习
- tensorflow学习笔记--tf.one_hot
- One-hot 编码/TF-IDF 值来提取特征,LAD/梯度下降法(Gradient Descent),Sigmoid
- tf.one_hot()进行独热编码
- tensorflow--tf.one_hot()函数示例
- MySQL 备份和恢复策略二:使用mysqlhotcopy备份数据库
- OnePush一个可拓展的Android消息推送SDK(使用介绍)
- tf.nn.embedding_lookup()的使用
- one hot coding -机器学习
- [DOM Event Learning] Section 3 jQuery事件处理基础 on(), off()和one()方法使用