python – TensorFlow“tf.estimator Quickstart”示例不会产生
发布时间:2020-12-20 13:19:37 所属栏目:Python 来源:网络整理
导读:我刚开始用TensorFlow和 Python练习.我复制并执行了TensorFlow网站 tf.estimator Quickstart页面中的代码: from __future__ import absolute_importfrom __future__ import divisionfrom __future__ import print_functionimport osimport urllibimport num
我刚开始用TensorFlow和
Python练习.我复制并执行了TensorFlow网站
tf.estimator Quickstart页面中的代码:
from __future__ import absolute_import from __future__ import division from __future__ import print_function import os import urllib import numpy as np import tensorflow as tf # Data sets IRIS_TRAINING = "iris_training.csv" IRIS_TRAINING_URL = "http://download.tensorflow.org/data/iris_training.csv" IRIS_TEST = "iris_test.csv" IRIS_TEST_URL = "http://download.tensorflow.org/data/iris_test.csv" def main(): # If the training and test sets aren't stored locally,download them. if not os.path.exists(IRIS_TRAINING): raw = urllib.urlopen(IRIS_TRAINING_URL).read() with open(IRIS_TRAINING,"w") as f: f.write(raw) if not os.path.exists(IRIS_TEST): raw = urllib.urlopen(IRIS_TEST_URL).read() with open(IRIS_TEST,"w") as f: f.write(raw) # Load datasets. training_set = tf.contrib.learn.datasets.base.load_csv_with_header( filename=IRIS_TRAINING,target_dtype=np.int,features_dtype=np.float32) test_set = tf.contrib.learn.datasets.base.load_csv_with_header( filename=IRIS_TEST,features_dtype=np.float32) # Specify that all features have real-value data feature_columns = [tf.feature_column.numeric_column("x",shape=[4])] # Build 3 layer DNN with 10,20,10 units respectively. classifier = tf.estimator.DNNClassifier(feature_columns=feature_columns,hidden_units=[10,10],n_classes=3,model_dir="/tmp/iris_model") # Define the training inputs train_input_fn = tf.estimator.inputs.numpy_input_fn( x={"x": np.array(training_set.data)},y=np.array(training_set.target),num_epochs=None,shuffle=True) # Train model. classifier.train(input_fn=train_input_fn,steps=2000) # Define the test inputs test_input_fn = tf.estimator.inputs.numpy_input_fn( x={"x": np.array(test_set.data)},y=np.array(test_set.target),num_epochs=1,shuffle=False) # Evaluate accuracy. accuracy_score = classifier.evaluate(input_fn=test_input_fn)["accuracy"] print("nTest Accuracy: {0:f}n".format(accuracy_score)) # Classify two new flower samples. new_samples = np.array( [[6.4,3.2,4.5,1.5],[5.8,3.1,5.0,1.7]],dtype=np.float32) predict_input_fn = tf.estimator.inputs.numpy_input_fn( x={"x": new_samples},shuffle=False) predictions = list(classifier.predict(input_fn=predict_input_fn)) predicted_classes = [p["classes"] for p in predictions] print( "New Samples,Class Predictions: {}n" .format(predicted_classes)) if __name__ == "__main__": main() 根据教程,输出应该是
我的问题是我执行源代码给出的输出是
不幸的是,我对TensorFlow或Python的经验不足以了解问题所在.我可以做的唯一猜测是一些兼容性问题,但我在TensorFlow网站上的tutorial之后安装了Python 3.5 for Windows. 解决方法
因为这里的predict_classes是一个dtype对象的数组.
您可以尝试使用np.concatenate(predict_classes).astype(np.int)将对象转换为int. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |