2017-07-06 58 views
2

我是tensorflow的新手。我有一个具有连续,离散和分类值的数据集。样本数据如下:如何将分类,离散和连续数据混合为张量流中的输入?

 col1 col2 col3 col4 col5 col6 Class 
0 22 23.40 45.60 11 1.0 0.0 0.0 
1 346 67.40 235.60 23 1.0 1.0 0.0 
2 22 67.34 364.66 17 0.0 0.0 1.0 
3 1231 124.44 213.89 14 1.0 0.0 1.0 

col1和col4是离散变量。 col2和col3是连续变量。 col5和col6是分类变量。 类是目标变量。

我想知道是否可以直接将上述数据作为输入传递给占位符X

X = tf.placeholder(tf.float32, [None, numFeatures]) 

我不必申请tf.one_hot,对吗?由于我的分类变量是二元的。

tensorflow如何检测col5和col6是分类变量?

任何帮助,将不胜感激。谢谢!

回答

2

由于您的变量是二进制文件,所以可以将它们视为int 您必须创建占位符,稍后您将在培训部分中通过批次创建占位符。

下面介绍如何声明tensorflow占位符,使其具有正确的dtype。

var1 = tf.placeholder(tf.int32, shape) 
var4 = tf.placeholder(tf.int32, shape) 

var2 = tf.placeholder(tf.float32, shape) 
var3 = tf.placeholder(tf.float32, shape) 

var5 = tf.placeholder(tf.int32, shape) 
var6 = tf.placeholder(tf.int32, shape) 

class_ = tf.placeholder(tf.int32, shape) 

为了让您的变量集馈送给模型,你会以后有将它们串联但在此之前,你应该投你张以都在连接时将同dtypes。

var1 = tf.cast(var1, tf.float32) 
... 
data = tf.concat([var1,var4, var2,var3, var5, var6], axis=1) 
+0

有没有一种方法可以将它们合并到一个占位符中,比方说X并将X作为输入传递给网络网络? – ankursg8

+0

@ ankursg8查看我刚刚写的编辑:'tf.concat' –

+0

明白了!非常感谢! – ankursg8

相关问题