【问题标题】:keras activation function layer: model.add Activation('relu') gives invalid syntax errorkeras 激活函数层:model.add Activation('relu') 给出无效语法错误
【发布时间】:2019-04-09 03:46:09
【问题描述】:

尝试通过以下代码构建层,但出现错误

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten, Conv2D, MaxPooling2D

X = pickle.load(open("X.pickle","rb"))
y = pickle.load(open("y.pickle","rb"))
X = X/255.0

model = Sequential()

model.add(Conv2D(64,(3,3) , input_shape = X.shape[1:]))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))

model.add((Conv2D(64, (3,3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))

model.add(Flatten())
model.add(Dense(64))

model.add(Dense(1))
model.add(Activation('sigmoid'))

model.compile(loss="binary_crossentropy",
             optimizer="adam",
             metrics=['accuracy'])

model.fit(X, y, batch_size=1, validation_split=0.1)

请有人帮忙。我在python 2.7环境下使用jupyter notebook,上面代码返回:

File "<ipython-input-37-f4c444b06108>", line 16
    model.add(Activation("relu"))
        ^
SyntaxError: invalid syntax

【问题讨论】:

  • 你为什么在model.add((Conv2D(64, (3,3)))这一行使用括号,替换成model.add(Conv2D(64, (3,3)))
  • 对,至少与左括号相同数量的右括号必须在该行中。

标签: python tensorflow keras deep-learning


【解决方案1】:

此错误通常表示报告的行没有正确结束。请注意,您在第 15 行有一个额外的括号。;)

model.add((Conv2D(64, (3,3))) # <--- 4 open, 3 closed
model.add(Activation("relu"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-16
    • 2021-07-30
    • 2018-05-14
    • 2017-05-06
    • 2021-08-31
    • 2018-04-17
    • 1970-01-01
    • 2020-08-24
    相关资源
    最近更新 更多