我用的是Keras的张力板。但标量图是乱七八糟的。因为不是线性的,循环回到自身。有没有办法纠正这个问题
class LRTensorBoard(TensorBoard):
def __init__(self, log_dir):
super().__init__(log_dir=log_dir)
def on_epoch_end(self, epoch, logs=None):
logs.update({'lr': K.eval(self.model.optimizer.lr)})
super().on_epoch_end(epoch, logs)
model = Sequential()
model.add(GRU(16, input_shape=(TimeStep.TIME_STEP + 1, TimeStep.FEATURES), activation='relu', return_sequences=True))
model.add(GRU(16, activation='relu', return_sequences=True))
model.add(GRU(16, activation='relu'))
model.add(Dense(3, activation='softmax'))
tensorboard = TensorBoard(log_dir=logDir, histogram_freq=0, write_graph=True)
tensorboard.set_model(model)
model.compile(loss='categorical_crossentropy', optimizer=optimize, metrics=[categorical_accuracy])
history = model.fit(TimeStep.fodder, TimeStep.target, epochs=100, shuffle=True, batch_size=4064, validation_split=0.3, callbacks=[tensorboard, LRTensorBoard(log_dir=logDir)])
这是因为TensorBoard希望所有日志都有不同的目录。例如,如果您有两个名为CNN1和CNN2的模型,那么您应该具有以下结构:
如果你没有这个确切的结构,张力板会认为这两个日志属于同一个训练课程,因此奇怪的曲线
[编辑]当我阅读您的代码时,我看到了一个简单的解决方法:当您指定logdir时,附加一个带有时间戳作为后缀的目录
相关问题 更多 >
编程相关推荐