一、基本步骤
基本的 TensorFlow 程序分为如下几个步骤:
1、导入数据
将外部数据导入并解析为规定格式的数据。
2、创建特征列
创建特征列,告诉程序一共有几列,每列名称。
3、选择模型
根据经验选择合适的模型类型,用于训练、评估和预测。
4、训练
使用训练数据训练模型。
5、评估
使用测试数据评估模型效果是否满意。
6、预测
使用经过训练的模型,对新数据进行预测。
二、示例
import tensorflow as tf
import numpy as np
# 导入和解析数据集
IRIS_TRAINING = "dataset/iris/iris_training.csv" # http://download.tensorflow.org/data/iris_training.csv
IRIS_TEST = "dataset/iris/iris_test.csv" # http://download.tensorflow.org/data/iris_test.csv
training_set = tf.contrib.learn.datasets.base.load_csv_with_header(
filename=IRIS_TRAINING,
target_dtype=np.int,
features_dtype=np.float32,
target_column=4
)
test_set = tf.contrib.learn.datasets.base.load_csv_with_header(
filename=IRIS_TRAINING,
target_dtype=np.int,
features_dtype=np.float32,
target_column=4
)
# 创建特征列以描述数据
feature_columns = [tf.contrib.layers.real_valued_column("", dimension=4)]
# 选择模型类型
classifier = tf.contrib.learn.DNNClassifier(
feature_columns=feature_columns,
hidden_units=[10, 20, 10],
n_classes=3,
model_dir="logs"
)
# 训练模型
classifier.fit(
x=training_set.data,
y=training_set.target,
steps=2000
)
# 评估模型的效果
accuracy_score = classifier.evaluate(
x=test_set.data,
y=test_set.target
)['accuracy']
print("Accuracy: {0:f}".format(accuracy_score))
# 让经过训练的模型进行预测
new_samples = np.array([[6.4, 3.2, 4.5, 1.5], [5.8, 3.1, 5.0, 1.7]], dtype=float)
y = list(classifier.predict(new_samples, as_iterable=True))
print('Precictions:{}'.format(str(y)))
三、附录
iris_training.csv 和 iris_test.csv 数据文件的百度云下载地址:https://pan.baidu.com/s/1fNGk5Cf69vY2y9O30i0o6g