Как просмотреть функциональность сцепления в Keras? - PullRequest
0 голосов
/ 10 марта 2020

Я смотрел на слои слияния keras (https://keras.io/layers/merge/) и хотел посмотреть, что выполняет каждая из операций со слоями. Я предполагаю, что их функциональность довольно интуитивна, но я хочу выяснить, как просмотреть вывод для данного примера.

Чтобы проиллюстрировать, что я имею в виду, у меня есть два массива со случайным вводом формы (1,10), и я хочу посмотреть, какой будет результат, если я объединю два массива. Однако, когда я делаю следующее, я получаю следующую ошибку: Layer concatenate_18 was called with an input that isn't a symbolic tensor. Received type: <class 'numpy.ndarray'>...All inputs to the layer should be tensors.

from keras.layers import concatenate
data1 = np.random.normal(0, 1, size = (1, 10))
data2 = np.random.normal(0, 1, size = (1, 10))
concatenation = concatenate([data1, data2])
print(concatenation) # I want to print the output of concatenating data1 and data2

Исходя из сообщения, я предполагаю, что эта ошибка связана с тем фактом, что входные данные являются массивами numpy но я не уверен, какой формат должен быть вместо этого? Как я могу просмотреть результаты использования concatenate на примере? Спасибо!

1 Ответ

0 голосов
/ 10 марта 2020

Я думаю, что я понял, как это сделать. Я использую данные, отличные от описанных выше, но должен достичь того же поведения. Похоже, мне нужно было указать входные тензоры, создать экземпляр модели и вызвать прогнозирование данных.

input1 = Input(shape=(3,))
input2 = Input(shape=(3,))
merge = concatenate([input1, input2])
model = Model([input1, input2], merge)

a = np.array([[1,1,1]])
b = np.array([[1,1,1]])
model.predict([a,b])
...