Neural network 如何计算净值';美国有线电视新闻网的失败

Neural network 如何计算净值';美国有线电视新闻网的失败,neural-network,deep-learning,caffe,conv-neural-network,Neural Network,Deep Learning,Caffe,Conv Neural Network,我想设计一个卷积神经网络,它占用的GPU资源不超过Alexnet。我想用触发器来测量它,但我不知道如何计算它。请问有什么工具可以做到这一点吗?有关在线工具,请参阅。有关alexnet,请参见。这支持最广为人知的层。对于自定义层,您必须自己计算。如果您使用的是Keras,您可以在这个拉取请求中使用补丁: 然后只需调用print_summary(),您将看到每层的失败次数和总数 即使不使用Keras,也值得在Keras中重新创建您的网络,以便获得失败计数。对于未来的访问者,如果您使用Keras和Te

我想设计一个卷积神经网络,它占用的GPU资源不超过Alexnet。我想用触发器来测量它,但我不知道如何计算它。请问有什么工具可以做到这一点吗?

有关在线工具,请参阅。有关alexnet,请参见。这支持最广为人知的层。对于自定义层,您必须自己计算。

如果您使用的是Keras,您可以在这个拉取请求中使用补丁:

然后只需调用print_summary(),您将看到每层的失败次数和总数


即使不使用Keras,也值得在Keras中重新创建您的网络,以便获得失败计数。

对于未来的访问者,如果您使用Keras和TensorFlow作为后端,则可以尝试以下示例。它计算MobileNet的失败次数

将tensorflow导入为tf
将keras.backend作为K导入
从keras.applications.mobilenet导入mobilenet
run_meta=tf.RunMetadata()
使用tf.Session(graph=tf.graph())作为sess:
K.SETU会话(sess)
net=MobileNet(alpha=0.75,input_tensor=tf.placeholder('float32',shape=(1,32,32,3)))
opts=tf.profiler.ProfileOptionBuilder.float\u操作()
flops=tf.profiler.profile(sess.graph,run\u meta=run\u meta,cmd='op',options=opts)
opts=tf.profiler.ProfileOptionBuilder.trainable_variables_parameter()
params=tf.profiler.profile(sess.graph,run\u meta=run\u meta,cmd='op',options=opts)
打印(“{:,}-{:,}”。格式(flops.total\u float\u ops,params.total\u parameters))

如果您使用的是TensorFlow v1.x,Tobias Scheck的答案有效,但如果您使用的是TensorFlow v2.x,则可以使用以下代码:

将tensorflow导入为tf
def get_触发器(h5型路径):
session=tf.compat.v1.session()
graph=tf.compat.v1.get\u default\u graph()
使用graph.as_default():
使用session.as_default():
模型=tf.keras.models.load\u模型(模型h5\u路径)
run_meta=tf.compat.v1.RunMetadata()
opts=tf.compat.v1.profiler.ProfileOptionBuilder.float\u操作()
#我们在调用探查器时使用Keras会话图。
flops=tf.compat.v1.profiler.profile(图形=图形,
run\u meta=run\u meta,cmd='op',options=opts)
返回浮点运算。总浮点运算
上述函数采用h5格式的已保存模型的路径。您可以通过以下方式保存模型并使用该功能:

model.save('path\u to\u my\u model.h5'))
tf.compat.v1.reset\u default\u graph()
打印(获取触发器('path\u to\u my\u model.h5'))

请注意,我们使用
tf.compat.v1.reset\u default\u graph()
来避免每次调用函数时累积触发器。

重复:@Shai:这并不能回答问题。这种联系的解决办法是,一半的问题是TF中的开放请求。这是Caffe。请问MACC代表什么?乘法和加法自发表评论之日起,此网页()似乎没有显示失败。所有的macc中心都有NaN吗?它与什么有关?如果我在Mobilenet V2上运行它,我会得到702万次失败,但在报纸上是3亿台MACs?所以MACs和FLOP值之间应该有一点差别,但差别很大。我已经修改了代码以适应tf2.0api。如果我使用实现()我得到3504872个总参数和60862165个总触发器。触发器是乘法和加法,要得到MACs值,应该将结果除以2。