【问题标题】:DataType string for attr 'TI' not in list of allowed values: uint8, int32, int64attr 'TI' 的数据类型字符串不在允许值列表中:uint8、int32、int64
【发布时间】:2017-07-12 13:46:23
【问题描述】:

我一直在使用 CNN 进行文本分类,并使用了 tensorflow 的 contrib learn。

但是,当我尝试执行以下代码时:

classifier = learn.Estimator(model_fn=cnn_model)

classifier.fit(x_train, y_train, steps=10000) 
y_predicted = [ p['class'] for p in classifier.predict(x_test, as_iterable=True)] 

score = metrics.accuracy_score(y_test, y_predicted) 

print('Accuracy: {0:f}'.format(score))

我运行时出现以下错误:

错误:属性“TI”的数据类型字符串不在允许值列表中: uint8, int32, int64 on line 'classifier.fit'

【问题讨论】:

  • 我已经对您的代码进行了一些格式化,请检查内容是否仍然正确。而且,疯狂的猜测:会不会是 y_train 应该将类表示为整数,但实际上包含浮点数?
  • y_train 包含 0 和 1。
  • 而 x_train 包含数字数组
  • 嗯,我对 contrib.learn 不熟悉。但可能您仍然应该包含x_trainy_train 的定义。

标签: tensorflow neural-network


【解决方案1】:

您需要将您的输入 y_train 转换为给定的类型。 print(type(y_train)) 很可能是浮点数而不是整数。

【讨论】:

  • 它们都是整数(1和0)
猜你喜欢
  • 2017-11-12
  • 2018-04-10
  • 2021-08-30
  • 1970-01-01
  • 1970-01-01
  • 2021-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多