我在Keras中有一个输入层wtm = Input(4,4,1),我想从wtm中的每个值生成形状为(None,28,28,1)的新张量,为此我使用了这段代码,但是它会产生以下错误,但我不知道为什么会发生?您能帮我解决这个问题吗?
wtm=Input((4,4,1))
rep=Kr.layers.Lambda(lambda x:Kr.backend.repeat(x,28))
a_1 = Kr.layers.Lambda(lambda x:x[1,1])(wtm)
a_2 = rep(a_1)
a_3 = Kr.layers.Reshape((1, 28,1))(a_2)
a=rep(a_2)
错误:
回溯(最近通话最近一次):
文件“”,第1行,位于encode_merged = add_const([encoded,a])
文件 “ D:\ software \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ keras \ engine \ base_layer.py”, 第457行,在通话输出= self.call(inputs,** kwargs)
文件 “ D:\ software \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ keras \ layers \ core.py”, 687行,在调用返回self.function(inputs,** arguments)
文件“”,第1行,位于add_const = Kr.layers.Lambda(lambda x:x [0] + x [1])
文件 “ D:\ software \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ tensorflow \ python \ ops \ math_ops.py”, 第866行,在binary_op_wrapper中返回func(x,y,name = name)
文件 “ D:\ software \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ tensorflow \ python \ ops \ gen_math_ops.py”, 第301行,添加“添加”,x = x,y = y,名称=名称)
文件 “ D:\ software \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ tensorflow \ python \ framework \ op_def_library.py”, 787行,在_apply_op_helper op_def = op_def)
文件 “ D:\ software \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ tensorflow \ python \ util \ deprecation.py”, 第488行,在new_func中返回func(* args,** kwargs)
文件 “ D:\ software \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ tensorflow \ python \ framework \ ops.py”, 第3274行,位于create_op op_def = op_def)
文件 “ D:\ software \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ tensorflow \ python \ framework \ ops.py”, 第1792行,位于初始control_input_ops)
文件 “ D:\ software \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ tensorflow \ python \ framework \ ops.py”, 第1631行,在_create_c_op中引发ValueError(str(e))
ValueError:尺寸必须相等,但对于28和4 输入形状为[?,28,28,1],[4,28,1]的'lambda_9 / add'(op:'Add')。