8.4.2 时间序列预测——使用TFLearn自定义模型——代码运行错误及解决方法

来源:互联网 发布:软件授权使用说明书 编辑:程序博客网 时间:2024/05/29 04:08

《TensorFlow》:实战Google深度学习框架中第八章的——8.4.2 时间序列预测——使用TFLearn自定义模型下的源代码运行报错:



原因分析:

score=metrics.accuracy_score(y_test,y_predicted)该句代码中y_predicted是tflearn中的generator类型,

而不是metrics.accuracy_score计算accuracy所需要sequence(序列)或者array-like(类数组)类型的数据;


问题解决:

在y_predicted=classifier.predict(x_test)后加:

y_predicted = list(y_predicted),

将其转化为list(列表类型)即可

# -*- coding: utf-8 -*-from sklearn import cross_validationfrom sklearn import datasetsfrom sklearn import metricsimport tensorflow as tf# import tflearnlearn = tf.contrib.learndef my_model(features,target):    target = tf.one_hot(target,3,1,0)    logits,loss = learn.models.logistic_regression(features,target)    train_op = tf.contrib.layers.optimize_loss(                                               loss,                                               tf.contrib.framework.get_global_step(),                                               optimizer='Adagrad',                                               learning_rate=0.1)    return tf.arg_max(logits,1),loss,train_opiris=datasets.load_iris()x_train,x_test,y_train,y_test=cross_validation.train_test_split(    iris.data,iris.target,test_size=0.2,random_state=0)classifier=learn.Estimator(model_fn=my_model)classifier.fit(x_train,y_train,steps=100)y_predicted=classifier.predict(x_test)y_predicted = list(y_predicted)score=metrics.accuracy_score(y_test,y_predicted)print ('Accuracy: %.2f%%'%(score*100))

运行环境:

(1)Python 3.5.2 |Anaconda 4.2.0 (64-bit)

(2)tensorflow '1.0.1'

(3)sklearn '0.18.1'

 
阅读全文
0 0
原创粉丝点击