我对Tensorflow和tflearn还很陌生 到目前为止,我已经研究了一些教程,并尝试将tflearn泰坦尼克号示例应用于动物园动物数据集(http://archive.ics.uci.edu/ml/datasets/Zoo)。训练效果很好,但当我尝试使用模型.预测对于我输入的数据,它给出了以下错误
无法为张量“InputData/X:0”输入形状(1,1,17)的值,该张量具有shape'(?,16)“
下面是python代码
from __future__ import print_function
import numpy as np
import tflearn
# Load CSV file, indicate that the first column represents labels
from tflearn.data_utils import load_csv
data, labels = load_csv('zoo.csv', target_column=-1,
categorical_labels=True, n_classes=8)
# Preprocessing function
def preprocess(data, columns_to_ignore):
# Sort by descending id and delete columns
for id in sorted(columns_to_ignore, reverse=True):
[r.pop(id) for r in data]
return np.array(data, dtype=np.float32)
# Ignore 'name' and 'ticket' columns (id 1 & 6 of data array)
to_ignore=[0]
# Preprocess data
data = preprocess(data, to_ignore)
# Build neural network
net = tflearn.input_data(shape=[None,16])
net = tflearn.fully_connected(net, 128)
net = tflearn.dropout(net, 1)
net = tflearn.fully_connected(net, 128)
net = tflearn.dropout(net, 1)
net = tflearn.fully_connected(net, 8, activation='softmax')
net = tflearn.regression(net)
# Define model
model = tflearn.DNN(net)
# Start training (apply gradient descent algorithm)
model.fit(data, labels, n_epoch=1, validation_set=0.1, shuffle=True, batch_size=17, show_metric=True)
ant = ['ant', 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 8, 0, 0, 0]
# Preprocess data
ant = preprocess([ant], to_ignore)
# Predict surviving chances (class 1 results)
pred = model.predict([ant])
print("Ant is:", pred[0])
我试过用整形,效果不太好。我在搜索中发现的类似问题都是在训练阶段出现的,而不是预测。在
结果我对数据集中的列数看得不够仔细。。。 如果其他人遇到类似的问题,或者使用这个例子来练习机器学习,这里是可以工作的代码。在
相关问题 更多 >
编程相关推荐