我正在实现的论文是使用带有自动编码器的RNN对异常网络数据进行分类(二进制分类)。他们首先在没有监督的情况下训练模型,然后描述这个过程:
接下来,进行微调训练(监督训练),利用标记样本训练网络的最后一层。采用监督训练准则进行微调,可以进一步优化整个网络。我们使用在顶层有两个通道的软最大回归层
目前,我已经实现了自动编码器:
class AnomalyDetector(Model):
def __init__(self):
super(AnomalyDetector, self).__init__()
self.encoder = tf.keras.Sequential([
layers.Dense(64, activation="relu"),
layers.Dense(32, activation="relu"),
layers.Dense(16, activation="relu"),
layers.Dense(8, activation="relu")])
self.decoder = tf.keras.Sequential([
layers.Dense(16, activation="relu"),
layers.Dense(32, activation="relu"),
layers.Dense(64, activation="relu"),
layers.Dense(79, activation='relu')
])如何在TensorFlow?中实现softmax回归层
我很难理解这个过程,是不是应该在自动编码器中再添加一个层呢?我应该给这个类添加另一个函数吗?
发布于 2021-09-26 21:06:15
以防万一任何人在未来访问这个-你可以创建一个软最大层通过改变激活。在我的情况下,我选择了乙状结肠激活,因为sigmoid相当于一个双元素softmax。按照文档的说法。
class AnomalyDetector(Model):
def __init__(self):
super(AnomalyDetector, self).__init__()
self.pretrained = False
self.finished_training = False
self.encoder = tf.keras.Sequential([
layers.SimpleRNN(64, activation="relu", return_sequences=True),
layers.SimpleRNN(32, activation="relu", return_sequences=True),
layers.SimpleRNN(16, activation="relu", return_sequences=True),
layers.SimpleRNN(8, activation="relu", return_sequences=True)])
self.decoder = tf.keras.Sequential([
layers.SimpleRNN(16, activation="relu", return_sequences=True),
layers.SimpleRNN(32, activation="relu", return_sequences=True),
layers.SimpleRNN(64, activation="relu", return_sequences=True),
layers.SimpleRNN(79, activation="relu"), return_sequences=True])
layers.SimpleRNN(1, activation="sigmoid")https://stackoverflow.com/questions/67655287
复制相似问题