У меня есть простая модель регрессии, как показано ниже. Слои layer_abc
и layer_efg
оба имеют (None, 5)
в качестве вывода, поэтому их вывод имеет одинаковое измерение и может быть добавлен. Таким образом, я хочу показать код #keras.layers.Add()(['layer_abc', 'layer_efg'])
. Но всякий раз, когда я делаю это, я получаю ошибку AttributeError: 'str' object has no attribute 'get_shape'
. Если я не отобразил эту строку, то код в порядке.
Как добавить два слоя без ошибок? Большое спасибо!
from __future__ import absolute_import, division, print_function
from scipy import misc
import tensorflow as tf
from tensorflow import keras
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D, BatchNormalization, Activation
import numpy as np
import matplotlib.pyplot as plt
train_images=np.array([[[0],[1],[2]],[[0],[0],[2]],[[1],[1],[1]],[[1],[0],[1]]])
train_labels=np.array([[1],[0],[1],[0]])
model = keras.Sequential([
keras.layers.Flatten(input_shape=(3, 1)),
keras.layers.Dense(5, activation=tf.nn.relu,name='layer_abc'),
keras.layers.Dense(5, activation=tf.nn.relu,name='layer_efg'),
#keras.layers.Add()(['layer_abc', 'layer_efg']),
keras.layers.Dense(1, activation=tf.nn.softmax),
])
model.compile(optimizer='adam',
loss='mean_squared_error',
metrics=['accuracy','mean_squared_error'])
print(model.summary())
model.fit(train_images, train_labels, epochs=2)