Python将多个类传递给function / method /

时间:2017-11-03 17:34:49

标签: python class methods neural-network

我正在尝试在下面的mwe中编写伪代码中给出的derivative函数。它应该计算我的神经网络预测成本相对于其中一个层的参数的数值导数。

我的问题是我不知道如何同时从函数(或方法?)中传递和访问NeuralNetwork的实例和Layer的实例。

查看例如Passing a class to another class (Python)没有给我答案。

import copy


class NeuralNetwork:
    def __init__(self):
        self.first_layer = Layer()
        self.second_layer = Layer()

    def cost(self):
        # not the actual cost but not of interest
        return self.first_layer.a + self.second_layer.a


class Layer:
    def __init__(self):
        self.a = 1


''' pseudocode
def derivative(NeuralNetwork, Layer):
    stepsize = 0.01
    cost_unchanged = NeuralNetwork.cost()
    NN_deviated = copy.deepcopy(NeuralNetwork)
    NN_deviated.Layer.a += stepsize
    cost_deviated = NN_deviated.cost()
    return (cost_deviated - cost_unchanged)/stepsize 
'''

NN = NeuralNetwork()

''' pseudocode
derivative_first_layer = derivative(NN, first_layer)
derivative_second_layer = derivative(NN, second_layer)
'''

0 个答案:

没有答案