【发布时间】:2017-12-01 23:07:48
【问题描述】:
我正在使用 Tensorflow 并尝试构建一个深度网络模型。我将使用带有 SGD/Adam 优化器(交叉熵最小化)和 L2 正则化器(惩罚大权重以使其过拟合)的 ReLU 激活。
我的数据集有 115599 行,13 列,其中 1:12 列实际上是输入 (X),第 13 列是二进制响应。我已经标准化了输入 X。
对于权重和偏差,我们应该从均值为零且方差为 1 的高斯分布中抽取样本。以前,当我使用 MNIST 数据集执行此操作时,我们使用W = tf.Variable(tf.zeros([784, 10])) & @ 将权重和偏差设置为零987654322@,因为响应有 10 个不同的级别 (0-9)。
我的问题是,如何为只有 两个 不同级别的二元响应指定权重。我应该输入 b = tf.Variable(tf.zeros([2])) 吗?
到目前为止我尝试过的代码放在下面;
import tensorflow as tf
import numpy
import pandas as pd
df_X=pd.read_csv('/home/prm/use_validation.csv',usecols = [0,1,2,3,4,5,6,7,8,9,10,11],skiprows=[0],header=None)
df_scale = (df_X - df_X.min()) / (df_X.max() - df_X.min())
d = df_scale.values
Response = pd.read_csv('/home/prm/use_validation.csv',usecols = [12],skiprows=[0],header=None)
labels = Response.values
data_use = numpy.float32(d)
labels = numpy.array(Response,'str')
#tensorflow
x = tf.placeholder(tf.float32,shape=(115599, 12))
x = data_use
w = tf.random_normal([100,115599],mean=0.0, stddev=1.0, dtype=tf.float32)
b = tf.random_normal([100,2],mean=0.0, stddev=1.0, dtype=tf.float32) ##[NOT SURE, PLEASE ASSIST]##
y = tf.nn.softmax(tf.matmul(w,x)+b)
提前致谢!!
【问题讨论】:
标签: tensorflow neural-network deep-learning