首页 > 解决方案 > 无法将所有权重保存到 .csv 文件

问题描述

我正在使用 tensorflow 2.4 上的 mnist 数据集运行一个简单的 CNN,并且我想将所有权重保存到 .csv 文件中,我尝试过的代码如下

for layer in model_train.layers:
    weights = layer.get_weights()
    print(weights)

np.savetxt('weight.csv' , weights , fmt='%s', delimiter=',')

weight = model_train.get_weights()
np.savetxt('weight.csv' , weight , fmt='%s', delimiter=',')

和我发现的这个方法

上面的所有结果最终都保存了类似这样的 .csv 文件,它不会保存层中的每一个权重,有没有办法可以保存每一个权重?还是我做错了什么?

我的模型

model_train = tf.keras.Sequential([
        tf.keras.layers.InputLayer(input_shape=(28, 28)),
        tf.keras.layers.Reshape(target_shape=(28, 28, 1)),
        tf.keras.layers.Conv2D(filters=12, kernel_size=(3, 3), activation='relu'),
        tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
        tf.keras.layers.Flatten(),
        tf.keras.layers.Dense(10)
])

model_train.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(
              from_logits=True),
              metrics=[tf.metrics.SparseCategoricalAccuracy()]
              )

model_train.fit(
    train_images,
    train_labels,
    epochs=5,
    batch_size=480,
    validation_split=0.2
)

model_train.save('./mnist_model.h5')  # creates a HDF5 file 'my_model.h5'
weight = model_train.get_weights()
np.savetxt('weight.csv' , weight , fmt='%s', delimiter=',')

标签: pythoncsvtensorflowmachine-learningsave

解决方案


推荐阅读