почему эта ошибка возникает, когда я хочу получить тензор с помощью повтора? - PullRequest
0 голосов
/ 22 марта 2019

У меня есть входной слой wtm = Input (4,4,1) в Keras, и я хочу создать новые тензоры с формой (None, 28,28,1) из каждого значения в wtm, для этого я использую этот код, новыдает следующую ошибку, и я не знаю, почему это произошло?Не могли бы вы помочь мне с этой проблемой?

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, в encoded_merged = add_const ([encoded, a])

Файл "D: \ software \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ keras \ engine \ base_layer.py", строка 457, ввыходной вызов = self.call (входные данные, ** kwargs)

Файл "D: \ software \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ keras \ Layers \ core.py", строка 687,в вызове возврат self.function (входные данные, ** аргументы)

Файл "", строка 1, в add_const = Kr.layers.Lambda (лямбда-x: x [0] + x [1])

Файл "D: \ software \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ensorflow \ python \ ops \ math_ops.py", строка 866, в двоичном_оп_wrapper возвращает func (x, y, name = name)

Файл "D: \ software \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ensorflow \ python \ ops \ gen_math_ops.py", строка 301, в добавлении "Добавить", x = x, y= y, name = name)

Файл "D: \ software \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ensorflow \ python \ framework \ op"_def_library.py ", строка 787, в _apply_op_helper op_def = op_def)

Файл" D: \ software \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ensorflow \ python \ util \ deprecation.py ",строка 488, в new_func возвращает func (* args, ** kwargs)

Файл "D: \ software \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ tenorflow \ python \ framework \ ops.py", строка 3274, в create_op op_def = op_def)

Файл "D: \ software \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ensorflow \ python \ framework \ ops.py", строка 1792, вinit control_input_ops)

Файл "D: \ software \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ensorflow \ python \ framework \ ops.py", строка 1631, в _create_c_op поднять ValueError (str (e))

ValueError: Размеры должны быть равны, но равны 28 и 4 для 'lambda_9 / add' (op: 'Add') с входными формами: [?, 28,28,1], [4,28,1].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...