TypeError: relu () отсутствует 1 обязательный позиционный аргумент: 'x'

Я получаю эту ошибку и не знаю, почему она появляется. Кто-нибудь, помогите мне.

import warnings
warnings.filterwarnings('ignore',category=FutureWarning)
import tensorflow as tf
import keras
from keras.layers.convolutional import Conv2D, AtrousConvolution2D
from keras.layers import Activation, Dense, Input, Conv2DTranspose, Dense, Flatten
from keras.layers import Dropout, Concatenate, BatchNormalization, Reshape
from keras.layers.advanced_activations import LeakyReLU
from keras.models import Model, model_from_json
from keras.optimizers import Adam
from keras.layers.convolutional import UpSampling2D
import keras.backend as K
from keras.activations import relu


def g_build_conv(layer_input, filter_size, kernel_size=4, strides=2, activation='leakyrelu', 
    dropout_rate=g_dropout, norm='inst', dilation=1):
    c = AtrousConvolution2D(filter_size, kernel_size=kernel_size, strides=strides,atrous_rate= 
        (dilation,dilation), padding='same')(layer_input)
    if activation == 'leakyrelu':
        c = relu()(c)
    if dropout_rate:
        c = Dropout(dropout_rate)(c)
    if norm == 'inst':
        c = InstanceNormalization()(c)
    return c

Предупреждение (из модуля предупреждений): файл «C: \ Users \ xyz \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ keras \ legacy \ Layers.py», строка 762 warnings.warn ('The AtrousConvolution2D layer 'UserWarning: слой AtrousConvolution2D устарел. Используйте вместо него слой Conv2D с аргументом dilation_rate. Traceback (последний вызов последним): файл "D: \ Image Outpaining \ outpaint.py", строка 146, в GEN = build_generator ( ) Файл «D: \ Image Outpaining \ outpaint.py», строка 120, в build_generator g1 = g_build_conv (g_input, 64, 5, strides = 1) Файл «D: \ Image Outpaining \ outpaint.py», строка 102, в g_build_conv c = relu () (c) TypeError: relu () отсутствует 1 обязательный позиционный аргумент: 'x'


person Udit Jain    schedule 09.02.2020    source источник


Ответы (1)


keras.activations.relu - это функция, а не слой, поэтому вы вызываете ее неправильно. Чтобы добавить ReLu в качестве слоя, сделайте следующее:

from keras.layers import Activation

if activation == 'leakyrelu':
    c = Activation("relu")(c)
person Dr. Snoopy    schedule 09.02.2020