gpt4 book ai didi

tensorflow - 如何使用tensorflow对一类数据进行分类?

转载 作者:行者123 更新时间:2023-12-04 15:55:54 24 4
gpt4 key购买 nike

我有一个用 TensorFlow 编写的深度缠绕代码。此代码适用于多个类。我想将代码更改为一个类,以便我可以教授零类并将任何不像零类数据的数据识别为非零。我在最后一层使用了 sigmoid 函数和一个神经元。我的模型训练很简单,但在测试时它只能识别任何其他类型数据的同一类。我把代码放在下面。我如何更改它以识别非类?

    h_drop = tf.nn.dropout(h_pool_flat, keep_prob=self.keep_prob)
# Softmax
with tf.name_scope('softmax'):
softmax_w = tf.Variable(tf.truncated_normal([num_filters_total, self.num_classes], stddev=0.1), name='softmax_w')
softmax_b = tf.Variable(tf.constant(0.1, shape=[self.num_classes]), name='softmax_b')

# Add L2 regularization to output layer
self.l2_loss += tf.nn.l2_loss(softmax_w)
self.l2_loss += tf.nn.l2_loss(softmax_b)

self.logits = tf.matmul(h_drop, softmax_w) + softmax_b
predictions = tf.nn.sigmoid(self.logits)
print(predictions)
**self.predictions = tf.argmax(predictions, 1, name='predictions')**

# Loss
with tf.name_scope('loss'):
losses = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=self.input_y, logits=self.logits)
# Add L2 losses
self.cost = tf.reduce_mean(losses) + self.l2_reg_lambda * self.l2_loss

# Accuracy
with tf.name_scope('accuracy'):
correct_predictions = tf.equal(self.predictions, self.input_y)
print(self.input_y)
print(self.predictions)
self.correct_num = tf.reduce_sum(tf.cast(correct_predictions, tf.float32))
self.accuracy = tf.reduce_mean(tf.cast(correct_predictions, tf.float32), name='accuracy')

这一行需要更改,但我不知道如何更改。self.predictions = tf.argmax(predictions, 1, name='predictions')你能指导我吗?

最佳答案

想象一下你的概念错误:如果你接受过识别猫图像的训练,并且每次你在训练期间正确喊“猫”,你都会得到一 block cookies ,如果你突然看到狗的图像,你会说什么?
- 确切地说,说“猫”,因为你仍然得到 cookies 。

更具体地说,如果在训练期间没有针对这两种情况的示例,您的网络就无法了解“正确”或“错误”的含义。如果没有负面示例,您的训练将无法在经典意义上发挥作用,因为网络总是“有益的”,无论您向它展示什么,它都是它知道的单一类。

存在单类分类的研究领域(例如,参见 thisthis 论文),但到目前为止,我认为使用一些负面示例以获得不错的性能会更有意义,特别是如果您手头有大量现成的训练数据(即 MNIST 中的非零图像)。

关于tensorflow - 如何使用tensorflow对一类数据进行分类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51696537/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com