如何将名称添加到Keras顺序模型的图层
我在Tensorflow 2.0中使用Keras创建了一个顺序模型:如何将名称添加到Keras顺序模型的图层,keras,tensorflow2.0,Keras,Tensorflow2.0,我在Tensorflow 2.0中使用Keras创建了一个顺序模型: def create_model(): model = keras.Sequential([ keras.layers.Flatten(input_shape=(28,28), name="bla"), keras.layers.Dense(128, kernel_regularizer=keras.regularizers.l2(REGULARIZE), activation="rel
def create_model():
model = keras.Sequential([
keras.layers.Flatten(input_shape=(28,28), name="bla"),
keras.layers.Dense(128, kernel_regularizer=keras.regularizers.l2(REGULARIZE), activation="relu",),
keras.layers.Dropout(DROPOUT_RATE),
keras.layers.Dense(128, kernel_regularizer=keras.regularizers.l2(REGULARIZE), activation="relu"),
keras.layers.Dropout(DROPOUT_RATE),
keras.layers.Dense(10, activation="softmax")
])
model.compile(optimizer="adam",
loss="sparse_categorical_crossentropy",
metrics=["accuracy"])
return model
model = create_model()
# Checkpoint callback
cp_callback = tf.keras.callbacks.ModelCheckpoint(filepath=checkpoint_path,
save_weights_only=True)
# Train model
model.fit(train_images,
train_labels,
epochs=EPOCHS,
callbacks=[cp_callback])
如果在将模型加载到单独的文件后提取名称,则会得到以下结果:
# Create model instance
model = create_model()
# Load weights of pre-trained model
model.load_weights(checkpoint_path)
output_names = [layer.name for layer in model.layers]
print(output_names) = ['flatten', 'dense', 'dropout', 'dense_1', 'dropout_1', 'dense_2']
在这种情况下,我希望bla
而不是flatten
如何将自定义名称添加到图层 你做得对,直接从我的jupyter开始: 来自tensorflow导入keras的
模型=keras.连续([
keras.layers.Flatten(输入_shape=(28,28),name=“bla”),
keras.layers.致密(128,activation=“relu”,),
keras.层压降(0.5),
keras.layers.Dense(128,activation=“relu”),
keras.层压降(0.5),
keras.层密度(10,活化=“softmax”)
])
model.compile(optimizer=“adam”,
loss=“稀疏\分类\交叉熵”,
指标=[“准确度”])
模型
0x2b6ecf083c18处的tensorflow.python.keras.engine.sequential.sequential>
[‘bla’、‘密集’、‘辍学’、‘密集1’、‘辍学1’、‘密集2’]
编辑添加加载/保存零件:
model.save('my_model.h5'))
第二个模型=keras.models.load\u模型(“my\u model.h5”)
输出\u名称=[第二个\u模型中的层的layer.name.layers]
输出名称
[‘bla’、‘密集’、‘辍学’、‘密集1’、‘辍学1’、‘密集2’]
如果您能添加整个代码,问题可能出在其他地方
您还可以添加tensorflow版本吗?我需要重置模型吗?有命令吗?我使用PyCharm和Tensorflow 2.0。只要使用
模型,就不必重置代码。save
和keras.models.load\u model
即可cp\u callback=tf.keras.callbacks.modelscheckpoint(filepath=checkpoint\u path,save\u weights\u only=True)
如果只保存权重,则不会添加图层名称,将其设置为False
output_names = [layer.name for layer in model.layers]
output_names