0

我正在研究 keras。我是新来的。这是我创建电影向量和用户向量的代码。应用 flatten 后,它会给出空张量。

movie_input = keras.layers.Input(shape=[1])
movie_vec = keras.layers.Flatten()(keras.layers.Embedding(n_movies + 1, 32) 
(movie_input))
movie_vec = keras.layers.Dropout(0.5)(movie_vec)
print(movie_vec)

# Same thing for the users
user_input = keras.layers.Input(shape=[1])
user_vec = keras.layers.Flatten()(keras.layers.Embedding(n_users + 1, 32) 
(user_input))
user_vec = keras.layers.Dropout(0.5)(user_vec)
print(user_vec)

input_vecs = keras.layers.merge([movie_vec, user_vec], mode='concat')
nn = keras.layers.Dropout(0.5)(keras.layers.Dense(128, activation='relu')    (input_vecs))
nn = keras.layers.normalization.BatchNormalization()(nn)
nn = keras.layers.Dropout(0.5)(keras.layers.Dense(128, activation='relu')(nn))
nn = keras.layers.normalization.BatchNormalization()(nn)
nn = keras.layers.Dense(128, activation='relu')(nn)

它给了我这个错误

>TypeError                                 Traceback (most recent call last)
>cc<ipython-input-27-10f282af0460> in <module>()
 18 # Next, we join them all together and put them
 19 # through a pretty standard deep learning architecture
 20 input_vecs = keras.layers.merge([movie_vec, user_vec], mode='concat')
 21 nn = keras.layers.Dropout(0.5)(keras.layers.Dense(128,activation='relu')(input_vecs))
 22 nn = keras.layers.normalization.BatchNormalization()(nn)
 >TypeError: 'module' object is not callable
4

2 回答 2

1

使用 keras 2.1.5

keras.layers.merge 方法在其中可用

于 2018-10-04T13:56:33.183 回答
0

keras.layers.merge不是可调用的。它是一个模块。查看它的文档

于 2018-10-04T13:23:11.900 回答