2

最近、ResNet-v1-50 の FLOP を計算するために tf.profile を使用しています。7084572224 (7.08 GFLOPs ?) を取得します。しかし、元の論文では 3.8 GFLOP です。

そして、私は VGG-19 で同じことを実行し、5628853928 (56.29 GFLOPs?) を取得しますが、その実際の値は 196 億 FLOPS です。すべてのテスト モデルが tf.slim にあることに注意してください。

私のコードは次のとおりです。

run_meta = tf.RunMetadata()
im = tf.placeholder(tf.float32, [1, 224, 224, 3])
with arg_scope(resnet_v1.resnet_arg_scope(use_batch_norm=True)):
    ims, endpoints = resnet_v1.resnet_v1_50(im)

print(get_num_of_params(tf.get_default_graph()))
opts = tf.profiler.ProfileOptionBuilder.float_operation()
flops = tf.profiler.profile(tf.get_default_graph(), run_meta=run_meta, cmd='op', options=opts)
print(flops.total_float_ops)

誰か助けてください。

4

1 に答える 1