gpt4 book ai didi

image-processing - caffe通过python创建网络

转载 作者:行者123 更新时间:2023-11-30 09:17:31 25 4
gpt4 key购买 nike

我们都知道这个 python 代码可以创建 caffe 网络:

    n = caffe.NetSpec()
n.data, n.label = L.Data(batch_size=batch_size,
backend=P.Data.LMDB, source=lmdb,
transform_param=dict(scale=1. / 255), ntop=2)
n.conv1 = L.Convolution(n.data, kernel_size=5,
num_output=20, weight_filler=dict(type='xavier'))
n.pool1 = L.Pooling(n.conv1, kernel_size=2,
stride=2, pool=P.Pooling.MAX)

图层的名称位于 n 的右侧。例如:“n.data”,该层的名称是“data”。

  1. 编写简单的代码

如果我想创建更多的图层,并且图层的名称除了数量之外都是相同的。例如,所有层的名称都是 {conv1,conv2,conv3,...,conv100}。我想定义一个字符串 s_name = conv%s 并只循环该数字做一次相同的事情,不需要编写几乎相同的代码 100 次。我该怎么办?

  • 名称中添加“/”?该图层的名称是“conv1/dw”,我如何确定该名称?
  • 最佳答案

    您可以使用__setattr__来做到这一点:

    s_name = 'conv{:03d}'.format(i)
    l = L.Convolution( # ...
    n.__setattr__(s_name, l)

    可以找到一个广泛的示例(展开 LSTM 单元)here

    或者,您可以使用 __getitem__ 属性:

    n[s_name] = L.Convolution( # ...

    参见this answer了解更多信息。

    关于image-processing - caffe通过python创建网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51434610/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com