Ошибка типа: relu () отсутствует 1 обязательный позиционный аргумент: 'x' - PullRequest
0 голосов
/ 09 февраля 2020

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

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 \ слои.py ", строка 762 warnings.warn ('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'

1 Ответ

0 голосов
/ 09 февраля 2020

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

from keras.layers import Activation

if activation == 'leakyrelu':
    c = Activation("relu")(c)
...