Python TQM在使用子类模型时激增
早上好,下午好,晚上好。 我现在对TF和ML还不熟悉,从漂亮的手册Handsonml2中学到了很多东西 我现在在子类模型页面,但是发生了一些尴尬的事情 通常,当我们训练模型时,我们会看到这一点。 TQM打印每个时代,显示了巨大的进步 然而,当我使用子类模型时,事情是这样的。 似乎课堂上有什么东西干扰了TQM,让它尽可能多地打印。 这些是我的模型类代码Python TQM在使用子类模型时激增,python,tensorflow,keras,tqdm,Python,Tensorflow,Keras,Tqdm,早上好,下午好,晚上好。 我现在对TF和ML还不熟悉,从漂亮的手册Handsonml2中学到了很多东西 我现在在子类模型页面,但是发生了一些尴尬的事情 通常,当我们训练模型时,我们会看到这一点。 TQM打印每个时代,显示了巨大的进步 然而,当我使用子类模型时,事情是这样的。 似乎课堂上有什么东西干扰了TQM,让它尽可能多地打印。 这些是我的模型类代码 class WideAndDeepModel(keras.models.Model): def __init__(self, unit
class WideAndDeepModel(keras.models.Model):
def __init__(self, units=30, activation="relu", **kwargs):
super().__init__(**kwargs)
self.hidden1 = keras.layers.Dense(units, activation=activation)
self.hidden2 = keras.layers.Dense(units, activation=activation)
self.main_output = keras.layers.Dense(1)
self.aux_output = keras.layers.Dense(1)
def call(self, inputs):
input_A, input_B = inputs
hidden1 = self.hidden1(input_B)
hidden2 = self.hidden2(hidden1)
concat = keras.layers.concatenate([input_A, hidden2])
main_output = self.main_output(concat)
aux_output = self.aux_output(hidden2)
return main_output, aux_output
model = WideAndDeepModel(30, activation="relu")
它会做出奇怪的反应,如图2所示,
如果我使用几乎相同的API,则不会产生任何问题
但要在函数中进行
就像
input_A = keras.layers.Input(shape=[5], name="wide_input")
input_B = keras.layers.Input(shape=[6], name="deep_input")
hidden1 = keras.layers.Dense(30, activation="relu")(input_B)
hidden2 = keras.layers.Dense(30, activation="relu")(hidden1)
concat = keras.layers.concatenate([input_A, hidden2])
output = keras.layers.Dense(1, name="output")(concat)
aux_output = keras.layers.Dense(1, name="aux_output")(hidden2)
model = keras.models.Model(inputs=[input_A, input_B], outputs=[output])
有人知道为什么吗?有可能预防吗?
我会等待答案
*如果我删除Aux输出部分,则不会产生这种结果。
然而,我想知道为什么会发生…答案非常简单。 Tqdm在新行上打印,如果行太长,无法在一行中显示, 因此,将终端加宽可以简单地解决问题
-问题已解决-请改进代码的格式,因为当前类
WideAndDeepModel
的函数缩进无效。此外,请尝试您的例子。@flyingdutchman sry对于粗糙的作品,我将尽可能多地编辑。@ML_引擎我的比那些人简单。。。我只是把我的IDE终端弄宽了。。。