Как сделать прогноз, используя веса и смещения, извлеченные из DNNClassifier tenorflow
1 trained Я обучил классификатор DNN следующим образом:
dw = tf.contrib.learn.DNNClassifier(
n_classes=2,
config=tf.contrib.learn.RunConfig(tf_random_seed=10),
feature_columns=cols,
hidden_units=[2],
optimizer=tf.train.AdagradOptimizer(0.1),
activation_fn = tf.nn.relu
#optimizer=tf.train.GradientDescentOptimizer(0.5)
#l1_regularization_strength=1.0
#model_dir="../model/deep/"
)
2 pre Используйте вес и смещение скрытого слоя и logitlayer, чтобы сделать предварительные условия ,, но результат не верен:
x = all_x[all_x.index==9473][[col.column_name for col in cols]]
x = np.matrix(x)
# layer0
out0 = x * np.matrix(dw.get_variable_value("dnn/hiddenlayer_0/weights")) + np.matrix(dw.get_variable_value("dnn/hiddenlayer_0/biases"))
# relu
out0 = out0.tolist()[0]
out0 = map(relu, out0)
out0 = np.matrix(out0)
# logitlayer
out = out0 * np.matrix(dw.get_variable_value("dnn/logits/weights")) + np.matrix(dw.get_variable_value("dnn/logits/biases"))
# compare results
print expit(out[0,0]) # my prediction
print test_pred[-1] # real prediction
>
0.225711449643
0.16966335
3 、 как получить прогноз использовать вес / смещение?