python - Tensorflow 分类标签数据类型

标签 python machine-learning tensorflow neural-network

我正在使用 Tensorflow DNN 模型进行一些分类

我有一个数字(float32)数据输入,但字符串类型输出

x = tf.placeholder("float", [None, n_input])
y = tf.placeholder(tf.string, [None, n_classes])

当我尝试如下定义损失和优化器时:

cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=pred, labels=y))

我遇到一个错误

TypeError: sigmoid_cross_entropy_with_logits() got an unexpected keyword argument 'labels'

我从here查找文档,它说的是

logits and targets must have the same type and shape.

我需要将类转换为 float (将字符串哈希为数字)吗?

output_y = [["apple", "apple", "orange", "banana"]]
encoded_y = [[1], [1], [2], [3]]

最佳答案

如果您使用的是tensorflow v 0.10,标签的关键字是targets。 如果您使用的是tensorflow v 1.0,那么标签的关键字是labels。 根据文档,您的标签向量应具有与 logits、float 32 或 float64 相同的类型。

关于python - Tensorflow 分类标签数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42560998/

相关文章:

python - 无法将甘特图放入破折号

python 使用 DataFrame 聚合并创建字典

python - 属性对 Python 中特定目标的预测能力,使用 Sklearn 中的特征选择

c# - 如何检查图像是否包含人脸并且它是合理可见的

python - 我如何判断 tf op 是否具有梯度?

python - 从 Python 中的字符串中获取 x 个最低有效位

python - 正确使用注释

php - 在 Web 应用程序中使用 TensorFlow 模型

python - 使用 Python 3 卡住 TensorFlow 中 Inception V3 的部分层

python - 如何从 Keras 中的 image_dataset_from_directory() 附加或获取 MapDataset 文件名?