【问题标题】:Loading numpy weights in TensorFlow 2.0在 TensorFlow 2.0 中加载 numpy 权重
【发布时间】:2020-01-11 00:04:40
【问题描述】:

我有一个 MNIST 数据集的神经网络架构如下-

def create_nn():
    """
    Function to create NN model for MNIST
    classification using 300 100 architecture
    """
    model = Sequential()
    model.add(l.InputLayer(input_shape = (784, )))
    model.add(Flatten())
    model.add(Dense(units = 300, activation='relu', kernel_initializer = tf.initializers.GlorotUniform()))
    # model.add(l.Dropout(0.2))
    model.add(Dense(units = 100, activation='relu', kernel_initializer = tf.initializers.GlorotUniform()))
    # model.add(l.Dropout(0.1))
    model.add(Dense(units = num_classes, activation='softmax'))

    # Compile designed NN-
    model.compile(
        loss = tf.keras.losses.categorical_crossentropy,
        # optimizer = 'adam',
        optimizer = tf.keras.optimizers.Adam(lr = 0.001),
        metrics = ['accuracy'])

    return model

# Insantiate a new NN model instance-
orig_model = create_nn()


# Load original weights from when designed model was initialized-
orig_model.load_weights("300_100_MNIST.h5")

type(orig_model.trainable_weights), len(orig_model.trainable_weights)
# (list, 6)

# Insantiate a new NN model instance-
pruned_model = create_nn()

# Load pruned weights AFTER pruning algorithm was applied to prune NN-
pruned_model.load_weights("300_100_Pruned_Model.h5")

现在,我创建一个列表,在其中根据某些标准处理权重,如下所示-

# List to store extracted weights-
weight_extracted = []

for orig_wts, pruned_wts in zip(orig_model.trainable_weights, pruned_model.trainable_weights):
    c = np.where(pruned_wts == 0, pruned_wts, orig_wts)
    weight_extracted.append(c)
    del c


len(weight_extracted)
# 6

如何使用 numpy 数组“weight_extracted”列表中的权重/偏差将权重加载到上面定义的 NN 中?

谢谢!

【问题讨论】:

  • 文档中没有介绍吗?

标签: python numpy tensorflow


【解决方案1】:

1-您可以将 weight_extracted=[] 列表转换为数组

2- 将此数组保存为带有 h​​5py 模块的 h5 文件

3- 再次加载提取的权重并使用新的权重训练网络!

这些是我的步骤,如果有误导或误解,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多