Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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
如何获取Keras模型的运行时批量大小_Keras_Runtime_Layer - Fatal编程技术网

如何获取Keras模型的运行时批量大小

如何获取Keras模型的运行时批量大小,keras,runtime,layer,Keras,Runtime,Layer,基于。我需要一些基本的实现帮助。下面您可以看到我的模型使用了一个退出层。当使用noise_shape参数时,最后一批可能不适合批量大小,从而导致错误,请参阅其他帖子 原始型号: def LSTM_型号X_系列、Y_系列、辍学、隐藏单元、马斯克沃特、批量大小: 模型=顺序 model.addMaskingmask_值=MaskWert,输入_shape=X_train.shape[1],X_train.shape[2] model.addDropoutdropout,noise_shape=bat

基于。我需要一些基本的实现帮助。下面您可以看到我的模型使用了一个退出层。当使用noise_shape参数时,最后一批可能不适合批量大小,从而导致错误,请参阅其他帖子

原始型号:

def LSTM_型号X_系列、Y_系列、辍学、隐藏单元、马斯克沃特、批量大小: 模型=顺序 model.addMaskingmask_值=MaskWert,输入_shape=X_train.shape[1],X_train.shape[2] model.addDropoutdropout,noise_shape=batchsize,1,X_train.shape[2] model.addDensehidden\u单位,activation='sigmoid',kernel\u constraint=max\u normax\u value=4。 model.addLSTMhidden\u单位,返回\u序列=真,辍学=辍学,复发性\u辍学=辍学 现在,Alexandre Passos建议使用tf.shape获取运行时批处理大小。我试图以不同的方式将运行时batchsize思想实现到Keras中,但从未奏效

将Keras.backend作为K导入 def后端_shapex: 返回K.shapex def LSTM_型号X_系列、Y_系列、辍学、隐藏单元、马斯克沃特、批量大小: batchsize=后端\u shapeX\u系列 模型=顺序 ... model.addDropoutdropout,noise_shape=batchsize[0],1,X_train.shape[2] ... 但这只是给了我输入张量的形状,而不是运行时输入张量的形状

我还尝试使用Lambda层

_lambdainput_形状的def输出_: 返回输入形状 def LSTM_型号2X_系列、Y_系列、辍学、隐藏单元、马斯克沃特、批量大小: 模型=顺序 model.addLambdaoutput_of_lambda,outputshape=output_of_lambda ... model.addDropoutdropout,noise_shape=outputshape[0],1,X_train.shape[2] 和不同的变体。但正如你已经猜到的,这根本不起作用。 模型定义的位置是否正确?
你能给我一个提示或者告诉我如何获得Keras模型的运行批量吗?非常感谢。

当前实现确实会根据运行时批处理大小调整。从退出层实现:


因此,如果给定noise\u shape=None,1,features,则形状将是运行时\u batchsize,1,上述代码后面的特性。

当前实现会根据运行时批次大小调整。从退出层实现:


因此,如果你给noise\u shape=None,1,features,则该形状将是runtime\u batchsize,1,符合上述代码的功能。

如果你给noise\u shape并使用K.shape提取它,则退出层已经使用runtime batch shape,实际错误是什么?亲爱的nuric,因为我使用timeseries,我想修复所有Timestep batch\u size,1的退出,特征。是否可以将内部运行时批处理形状与时间步长和功能的设置结合使用?,1特点。也许还可以检查第一行中的上一个链接,以获得更清晰的图片。如果您不提供任何运行时批处理形状并使用K.shape提取它,则退出层已使用该形状,实际错误是什么?亲爱的nuric,由于我使用时间序列,我想修复所有时间步长批处理大小为1的功能的退出。是否可以将内部运行时批处理形状与时间步长和功能的设置结合使用?,1特点。也许还可以查看第一行前面的链接,以获得更清晰的图片。亲爱的上帝,这很容易。非常感谢努里奇,你救了我又一个不眠之夜。亲爱的上帝,这很容易。非常感谢努里奇,你帮我又省了一个不眠之夜。
symbolic_shape = K.shape(inputs)
noise_shape = [symbolic_shape[axis] if shape is None else shape
               for axis, shape in enumerate(self.noise_shape)]