Neural network 如何在Keras中将计算图包装到层中?
之前,我将自己的层块编写为函数,如下所示:Neural network 如何在Keras中将计算图包装到层中?,neural-network,deep-learning,keras,Neural Network,Deep Learning,Keras,之前,我将自己的层块编写为函数,如下所示: def vgg_stack(...): def inner(x): x = layers.BatchNormalization()(x) x = layers.Conv2D(...)(x) x = layers.Conv2D(...)(x) x = layers.MaxPool2D(pool_size=(2,2)(x) x = layers.Dropout(0.
def vgg_stack(...):
def inner(x):
x = layers.BatchNormalization()(x)
x = layers.Conv2D(...)(x)
x = layers.Conv2D(...)(x)
x = layers.MaxPool2D(pool_size=(2,2)(x)
x = layers.Dropout(0.25)(x)
...
return x
return inner
从这些函数中,我能够以一致的方式构建图形,如
x1 = layers.Input(...)
x2 = layers.Input(...)
x1 = vgg_stack(...)(x1)
x2 = vgg_stack(...)(x2)
x = layers.concatenate([x1, x2])
x = final_MLP(...)(x)
以此类推,以同样的方式将keras层和我自己的功能结合起来
不幸的是,这种方法停留在层包装器上:这个构造函数只接受层,不接受函数。如果我把我的函数传递给它,它就会抱怨
AttributeError: 'function' object has no attribute 'built'
所以,我需要。但是假设我已经有了上面所写的函数。最简单的方法是将这样的函数包装到层中