Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 函数用于构建任意层数的Keras模型_Python_Keras_Keras Layer_Tf.keras - Fatal编程技术网

Python 函数用于构建任意层数的Keras模型

Python 函数用于构建任意层数的Keras模型,python,keras,keras-layer,tf.keras,Python,Keras,Keras Layer,Tf.keras,我想看看当我改变模型的层数时会发生什么 我编写了一个函数来构建、编译和拟合一个具有自定义层数的模型。但每次只使用一层(看起来像什么)构建时,它都会制作一个(看起来)完全相同的模型 代码 def自定义num层模型(num层): 密集_层=[密集(16,activation='relu')]*num_层 所有_层=密集_层+[密集(1,激活='sigmoid')] 模型=顺序(所有层) model.compile(优化器='rmsprop', 损失='binary\u交叉熵', 指标=[‘准确度’]

我想看看当我改变模型的层数时会发生什么

我编写了一个函数来构建、编译和拟合一个具有自定义层数的模型。但每次只使用一层(看起来像什么)构建时,它都会制作一个(看起来)完全相同的模型

代码

def自定义num层模型(num层):
密集_层=[密集(16,activation='relu')]*num_层
所有_层=密集_层+[密集(1,激活='sigmoid')]
模型=顺序(所有层)
model.compile(优化器='rmsprop',
损失='binary\u交叉熵',
指标=[‘准确度’])
历史=模型拟合(x_列车,
你的火车,
纪元=20,
批次大小=512,
验证(拆分=0.4)
回归历史
当我写这篇文章时,我意识到这一定是行
densite\u layers=[densite(16,activation='relu')]*num\u layers
。这必须复制列表中的确切图层,从而使副本无效

那么,我该如何编写一个函数来自动化这个使用自定义层数构建模型的过程呢?

我想出来了

在函数的第一行使用列表理解

densite_layers=[densite(16,activation='relu')用于范围内的(num_layers)]
您必须初始化新对象,因此也可以使用for循环来初始化

使用
list*num_layers
只需创建一个包含原始对象的
num_layers
副本的新列表。因为它是同一个对象,就像有一个单层网络


使用列表理解创建不同的新对象,因此它可以工作。

范围内(num_层)的
[Dense(16,activation='relu')怎么样?
?你知道我刚才刚刚有了那个灯泡!谢谢你的帮助:)