0
点赞
收藏
分享

微信扫一扫

解决前端笔记本电脑屏幕显示缩放比例125%、150%对页面大小的影响问题

罗子僧 04-11 10:30 阅读 1

文章目录

概要

通过以下实例,你将学会如何查看神经网络结构并打印出训练参数。

流程

  • 准备一个简易的二分类数据集,并编写一个单层的神经网络
train_data = np.array([[1, 2, 3, 4, 5], 
                       [7, 7, 2, 4, 10], 
                       [1, 9, 3, 6, 5], 
                       [6, 7, 8, 9, 10]])

train_label = np.array([1, 0, 1, 0])  #标签与样本一一对齐


""" 定义一个单层的神经网络 """
model = tf.keras.models.Sequential([
    tf.keras.layers.Dense(1, activation=None)
])
  • 编译,训练,并保存模型
model.compile(
    loss=tf.keras.losses.BinaryCrossentropy(from_logits=True),
    optimizer='adam'
)
model.fit(train_data,
          train_label,
          epochs=2750)

tf.saved_model.save(model, "model_dir")  #保存到当前目录中,目录名为model_dir
  • 模型保存形式

  • 利用模型的Checkpoint对象查看模型结构和参数
"""  最后的variables是.data-00000-of-00001和 .index文件去掉后缀后的表达形式,
     从而统一代表着这两个文件"""
save_path = './model_dir/variables/variables'  # 

reader = tf.train.load_checkpoint(save_path)  # 得到CheckpointReader

"""  打印Checkpoint中存储的所有参数名和参数shape """
for variable_name, variable_shape in reader.get_variable_to_shape_map().items():
    print(f'{variable_name} : {variable_shape}')
 

optimizer/_variables/2/.ATTRIBUTES/VARIABLE_VALUE : [5, 1]
optimizer/_iterations/.ATTRIBUTES/VARIABLE_VALUE : []
_CHECKPOINTABLE_OBJECT_GRAPH : []
keras_api/metrics/0/count/.ATTRIBUTES/VARIABLE_VALUE : []
keras_api/metrics/0/total/.ATTRIBUTES/VARIABLE_VALUE : []
layer_with_weights-0/bias/.ATTRIBUTES/VARIABLE_VALUE : [1]
layer_with_weights-0/kernel/.ATTRIBUTES/VARIABLE_VALUE : [5, 1]
optimizer/_variables/1/.ATTRIBUTES/VARIABLE_VALUE : [5, 1]
optimizer/_learning_rate/.ATTRIBUTES/VARIABLE_VALUE : []
optimizer/_variables/3/.ATTRIBUTES/VARIABLE_VALUE : [1]
optimizer/_variables/4/.ATTRIBUTES/VARIABLE_VALUE : [1]
print(reader.get_tensor('layer_with_weights-0/kernel/.ATTRIBUTES/VARIABLE_VALUE'))
print(reader.get_tensor("layer_with_weights-0/bias/.ATTRIBUTES/VARIABLE_VALUE"))


[[-1.7741445 ]
 [-0.07314294]
 [-0.07213379]
 [ 1.1694099 ]
 [-0.36803177]]

[1.7487208]

  • 验证
model = tf.saved_model.load('model_dir')
print(model([[1, 2, 3, 4, 5]]))
output = -1.7741445 - 2*0.07314294 - 3*0.07213379 + 4*1.1694099 - 5*0.36803177+1.7487208
print(output)


tf.Tensor([[2.4493697]], shape=(1, 1), dtype=float32)

2.4493698000000004

举报

相关推荐

0 条评论