我测试了分类结构化数据教程。URL
我修改了代码来改变宽深模型。在
def df_to_dataset(dataframe, label, shuffle=True, batch_size=32):
dataframe = dataframe.copy()
labels = label.copy()
ds = tf.data.Dataset.from_tensor_slices((dict(dataframe), labels.values))
if shuffle:
ds = ds.shuffle(buffer_size=len(dataframe))
ds = ds.batch(batch_size)
gc.collect()
return ds
train_ds = df_to_dataset(train, train_y , batch_size=batch_size)
dnn_hidden_units = [2048 , 1024 , 512 ]
reg = keras.regularizers.L1L2(l1=0.01, l2=0.01)
for layerno, numnodes in enumerate(dnn_hidden_units):
deep = tf.keras.layers.Dense(numnodes,
activation=None ,
kernel_regularizer=reg ,
name='dnn_{}'.format(layerno+1))(deep)
deep = keras.layers.BatchNormalization(name = "dnn_BN_{}".format(layerno+1))(deep)
deep = keras.layers.Dropout(0.3, name = "dnn_Drop_{}".format(layerno+1))(deep)
deep = keras.layers.LeakyReLU(0.2 , name = "dnn_LR_{}".format(layerno+1))(deep)
both = tf.keras.layers.concatenate([deep, wide], name='both')
output = tf.keras.layers.Dense(884, activation='sigmoid', name='pred')(both)
model = tf.keras.Model(inputs, output)
model.compile(optimizer='adam',
loss=focal_loss , # focal_loss , # 'binary_crossentropy',
metrics=[ binary_accuracy ])
model.load_weights('var/disk/WideDeep_TF2/my_checkpoint')
model.fit(train_ds,
validation_data=val_ds,
callbacks = [Board , lr_sched ] , # cp_callback ,
validation_freq=10 ,
#class_weight = class_weight,
epochs=100)
它是有效的,但记忆在每一个时代结束时都会积累起来。在
例如
历元内存(GB)
纪元1:2.0
纪元2:2.5
纪元3:3.0
纪元4:3.5
我找了很多,但找不到。在
它是否只是一个TF2.0-beta1错误?还是有问题?在
请帮帮我。在
谢谢
目前没有回答
相关问题 更多 >
编程相关推荐