当前位置: 首页>>代码示例>>Python>>正文


Python Layer.set_delta方法代码示例

本文整理汇总了Python中layer.Layer.set_delta方法的典型用法代码示例。如果您正苦于以下问题:Python Layer.set_delta方法的具体用法?Python Layer.set_delta怎么用?Python Layer.set_delta使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在layer.Layer的用法示例。


在下文中一共展示了Layer.set_delta方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: NeuroNet

# 需要导入模块: from layer import Layer [as 别名]
# 或者: from layer.Layer import set_delta [as 别名]

#.........这里部分代码省略.........
        self.layers.append(layer)
        self.connect_layers(prev_layer, layer)
        layer.modify(-1)  # add random weight
        return True

    """ 
    Получить слой из общей карты слоев, включая:
    - входной (0); 
    - промежуточные (1..n);
    - выходной (n+1); """

    def get_layer(self, num):
        if num == 0:
            return self.input_layer
        if num == len(self.layers) + 1:
            return self.output_layer
        return self.layers[num - 1]

    """
    Удалить слой, заданный объектом
    """

    def del_layer(self, layer):
        layer.remove_connections()
        if layer in self.layers:
            self.layers.remove(layer)
        return True

    """
    Удалить слой, заданный индексом
    """

    def delete(self, num):
        if len(self.layers) <= MIN_LAYERS_NUM:
            return False
        if 0 <= num <= len(self.layers) - 1:
            # try:
            self.del_layer(self.layers[num])
            # except Exception, e:
            #   print self.layers[num].history
            #   raise e
            return True
        else:
            return False

    """
    Изменение случайного слоя
    """

    def rand_modify_layer(self, tp):
        random.choice(self.layers).modify(tp)
        return True

    """
    Добавление случайного слоя
    """

    def rand_add_layer(self, layer=None, np=0):  # 0 - both, 1 - only directly, 2 - only backward
        pli, nli = random.sample(range(len(self.layers) + 2), 2)
        print pli, nli
        if ((np == 1) and (nli < pli)) or ((np == 2) and (nli > pli)):
            pli, nli = nli, pli
        self.add_layer(layer, self.get_layer(pli), self.get_layer(nli))
        return True

    """
    Удаление случайного слоя
    """

    def rand_del_layer(self):
        return self.delete(random.randint(0, len(self.layers) - 1))

    """
    Изменение параметров нейросети
    tp - type of modify neuronet; 1-add,2-del,3-modify layers
    atp1 - additional type
    """

    def modify(self, tp, atp=0, atp1=0):
        # print tp,atp,atp1
        if tp == 0:
            self.rand_add_layer(np=atp)
        elif tp == 1:
            self.rand_del_layer()
        elif tp == 2:
            self.rand_modify_layer(atp)
        return True

    def set_input_delta(self, const):
        self.input_layer.set_delta(const)
        # self.input_layer.neurons[n].constant_input = float(const)

    def __str__(self):
        s = ''
        s += PST + 'Input  Layer:'.ljust(14) + `self.input_layer` + '\n' + str(self.input_layer) + '\n\n'
        s += PST + 'Output Layer:'.ljust(14) + `self.output_layer` + '\n' + str(self.output_layer) + '\n\n'
        s += PST + 'Other  Layers:\n'
        for n, i in enumerate(self.layers):
            s += PST + '>Layer' + `n` + ': ' + `i` + '\n' + str(i) + '\n'
        return s
开发者ID:TGPAnth,项目名称:NeuroNetwork,代码行数:104,代码来源:neuronet.py


注:本文中的layer.Layer.set_delta方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。