为什么这个TensorFlow代码这么慢?

时间:2018-03-01 00:49:37

标签: python performance loops tensorflow softmax

我正在使用TensorFlow训练深度神经网络多类分类器。网络输出最终层的线性值,tf.nn.softmax_cross_entropy_with_logits成本函数作为输入。但是,我并不关心线性输出本身 - 我想知道当softmax函数应用于它时它的样子。

在我的代码的相关部分下面:

def train_network(x, num_hidden_layers):
    prediction = neural_network_model(x, num_hidden_layers)
    cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=prediction, labels=y))
    optimizer = tf.train.AdamOptimizer(learning_rate=0.01).minimize(cost)

    with tf.Session() as sess: 
        sess.run(tf.global_variables_initializer())

        # train the network 
        ...

        # get the network output; x_test is my test data (len=663)
        output = sess.run(prediction,feed_dict={x: x_test})

        # get softmax values of output
        for i in range(len(x_test)):
            softm = sess.run(tf.nn.softmax(output[i]))
            pred_class = sess.run(tf.argmax(softm))
            print(pred_class)
            ...

现在,我计算softmax值的最终for循环非常慢。为什么会这样,我该怎么做呢?

0 个答案:

没有答案