【发布时间】:2018-04-28 20:08:01
【问题描述】:
在 TensorFlow 中,我可以做些什么来找出我网络中学习参数的数量?
【问题讨论】:
标签: python tensorflow conv-neural-network
在 TensorFlow 中,我可以做些什么来找出我网络中学习参数的数量?
【问题讨论】:
标签: python tensorflow conv-neural-network
你可以用一个简单的单线做到这一点:
np.sum([np.prod(v.get_shape().as_list()) for v in tf.trainable_variables()])
如果您需要更多细节,这里有一个帮助函数,我用它来查看所有可训练参数:
def show_params():
total = 0
for v in tf.trainable_variables():
dims = v.get_shape().as_list()
num = int(np.prod(dims))
total += num
print(' %s \t\t Num: %d \t\t Shape %s ' % (v.name, num, dims))
print('\nTotal number of params: %d' % total)
它会像这样打印你的信息:
params/weights/W1:0 Num: 34992 Shape [3, 3, 18, 216]
params/weights/W2:0 Num: 839808 Shape [3, 3, 216, 432]
params/weights/W3:0 Num: 839808 Shape [3, 3, 432, 216]
params/weights/W4:0 Num: 57856 Shape [226, 256]
params/weights/W5:0 Num: 32768 Shape [256, 128]
params/weights/W6:0 Num: 8192 Shape [128, 64]
params/weights/W7:0 Num: 64 Shape [64, 1]
params/biases/b1:0 Num: 216 Shape [216]
params/biases/b2:0 Num: 432 Shape [432]
params/biases/b3:0 Num: 216 Shape [216]
params/biases/b4:0 Num: 256 Shape [256]
params/biases/b5:0 Num: 128 Shape [128]
params/biases/b6:0 Num: 64 Shape [64]
params/biases/b7:0 Num: 1 Shape [1]
Total number of params: 1814801
【讨论】:
没有我知道的功能,但您仍然可以在 tf.trainable_variables(): 上使用 for 循环来计算自己
total_parameters = 0
for variable in tf.trainable_variables():
variable_parameters = 1
for dim in variable.get_shape():
variable_parameters *= dim.value
total_parameters += variable_parameters
print("Total number of trainable parameters: %d" % total_parameters)
【讨论】: