【发布时间】:2022-01-20 23:55:46
【问题描述】:
我想在训练 cnn 之前设置一个起点。如何设置模型的起点?这是我的代码。另外我想知道每次重新训练模型时起点是否都会改变?非常感谢任何帮助。
model = Sequential()
model.add(layers.Embedding(vocab_size, embedding_dim, input_length=maxlen))
model.add(layers.Conv1D(16, 5, activation='tanh'))
model.add(layers.GlobalMaxPooling1D())
model.add(layers.Dense(3, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))
model_path= "sentiment labelled sentences/imdb models/model{epoch:02d}.hdf5"
check=ModelCheckpoint(model_path, monitor='val_loss', verbose=0, save_best_only=False, save_weights_only=False, mode='auto',save_freq='epoch') #modeli her epoch sonunda kaydet
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy'])
history = model.fit(X_train, y_train,
epochs=15,
validation_data=(X_test, y_test),
batch_size=10, callbacks=[check])
【问题讨论】:
-
设置起点是指固定权重的初始值吗?
-
是的,我也想知道每次运行模型时初始重量是否会发生变化
-
是的,它们每次都会改变,因为它们是用随机数初始化的。如果您想确保模型始终使用修复随机种子所需的相同初始权重,请参阅
tf.random.set_seed。否则,您可以使用常量值而不是随机值来初始化权重,请参阅tf.keras.initializers.Constant。
标签: python tensorflow keras deep-learning conv-neural-network