获取TensorFlow的预测结果

我正在进行我的第一个TensorFlow示例,以下是代码。

train_x,train_y,test_x,test_y=create_feature_sets_and_labels('pro.txt','neg.txt')n_nodes_hl1 = 1500n_nodes_hl2 = 1500n_nodes_hl3 = 1500n_classes = 2batch_size = 100hm_epochs = 7x = tf.placeholder('float')y = tf.placeholder('float')hidden_1_layer = {'f_fum':n_nodes_hl1,              'weight':tf.Variable(tf.random_normal([len(train_x[0]), n_nodes_hl1])),              'bias':tf.Variable(tf.random_normal([n_nodes_hl1]))}hidden_2_layer = {'f_fum':n_nodes_hl2,              'weight':tf.Variable(tf.random_normal([n_nodes_hl1, n_nodes_hl2])),              'bias':tf.Variable(tf.random_normal([n_nodes_hl2]))}hidden_3_layer = {'f_fum':n_nodes_hl3,              'weight':tf.Variable(tf.random_normal([n_nodes_hl2, n_nodes_hl3])),              'bias':tf.Variable(tf.random_normal([n_nodes_hl3]))}output_layer = {'f_fum':None,            'weight':tf.Variable(tf.random_normal([n_nodes_hl3, n_classes])),            'bias':tf.Variable(tf.random_normal([n_classes])),}def neural_network_model(data):    l1 = tf.add(tf.matmul(data,hidden_1_layer['weight']), hidden_1_layer['bias'])    l1 = tf.nn.relu(l1)    l2 = tf.add(tf.matmul(l1,hidden_2_layer['weight']), hidden_2_layer['bias'])    l2 = tf.nn.relu(l2)    l3 = tf.add(tf.matmul(l2,hidden_3_layer['weight']), hidden_3_layer['bias'])    l3 = tf.nn.relu(l3)    output = tf.matmul(l3,output_layer['weight']) + output_layer['bias']    return outputdef train_neural_network(x):    prediction = neural_network_model(x)    cost = tf.reduce_mean( tf.nn.softmax_cross_entropy_with_logits(prediction,y) )    optimizer = tf.train.AdamOptimizer(learning_rate=0.001).minimize(cost)    with tf.Session() as sess:            sess.run(tf.initialize_all_variables())            for epoch in range(hm_epochs):                    epoch_loss = 0                    i=0                    while i < len(train_x):                            start = i                            end = i+batch_size                            batch_x = np.array(train_x[start:end])                            batch_y = np.array(train_y[start:end])                            _, c = sess.run([optimizer, cost], feed_dict={x: batch_x,                                                          y: batch_y})                            epoch_loss += c                            i+=batch_size                    print('Epoch', epoch+1, 'completed out of',hm_epochs,'loss:',epoch_l$                correct = tf.equal(tf.argmax(prediction, 1), tf.argmax(y, 1))            accuracy = tf.reduce_mean(tf.cast(correct, 'float'))            print(y)            print('Accuracy:',accuracy.eval({x:test_x, y:test_y}))train_neural_network(x)

它给我提供了测试数据的准确率。我希望能够向训练模型输入一个句子,然后返回预测的标签。

我尝试了以下来自示例的代码

#与词典长度相同               input = [0.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.$ output = sess.run(y, feed_dict={x :input})

它给我返回了以下错误。

您必须为占位符张量'Placeholder_1'提供一个值,其数据类型为float     [[Node: Placeholder_1 = Placeholder[dtype=DT_FLOAT, shape=[], _device="/job:localhost/replica:0/task:0/cpu:0"]()]]

回答:

session.run()的第一个参数应该是你想要获取的张量。

在你的情况下,应该是prediction张量(所以你需要从train_neural_network中返回它)。对其应用argmax以获得预测的标签。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注