0

An error occur when try to execute a custom activation function all the commands work until reaching the last one hits an error! Tensorflow version is: 2.9.1 keras version is: 2.9.0 Thanks in advance.

The code


import tensorflow
from tensorflow.keras.datasets import mnist
from tensorflow.keras import backend as K 
from keras.utils.generic_utils import get_custom_objects
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Flatten, Activation
from tensorflow.keras.layers import Conv2D, MaxPooling2D
import numpy as np
import matplotlib.pyplot as plt


# Custom activation function
def custom_activation(x):
    return K.cast(K.x**2)  # I also tried the Square(x)

# Before creating the model, I update Keras' custom objects:
get_custom_objects().update({'custom_activation': Activation(custom_activation)})

# Model configuration
img_width, img_height = 28, 28
batch_size = 32
no_epochs = 5
no_classes = 10
verbosity = 1

# Load MNIST dataset
(input_train, target_train), (input_test, target_test) = mnist.load_data()

# Reshape data
input_train = input_train.reshape(input_train.shape[0], img_width, img_height, 1)
input_test = input_test.reshape(input_test.shape[0], img_width, img_height, 1)
input_shape = (img_width, img_height, 1)

# Parse numbers as floats
input_train = input_train.astype('float32')
input_test = input_test.astype('float32')

# Normalize data: [0, 1].
input_train = input_train / 255
input_test = input_test / 255

# Convert target vectors to categorical targets
target_train = tensorflow.keras.utils.to_categorical(target_train, no_classes)
target_test = tensorflow.keras.utils.to_categorical(target_test, no_classes)

# Create the model
model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3), activation=custom_activation, input_shape=((input_shape))))

The Error


When trying to execute the following line:

model.add(Conv2D(32, kernel_size=(3, 3), activation=custom_activation, input_shape=((input_shape))))

This error appears:

AttributeError: Exception encountered when calling layer "conv2d_4" (type Conv2D).

module 'keras.api._v2.keras.backend' has no attribute 'x'

Call arguments received by layer "conv2d_4" (type Conv2D): • inputs=tf.Tensor(shape=(None, 28, 28, 1), dtype=float32)

Anmar Ali
  • 1
  • 2

0 Answers0