Keras-inference-time-optimizer
Keras-inference-time-optimizer copied to clipboard
inbound_layers.append(res[inbound_layer_id]) KeyError: '140072123108824'
I had a problem when running reduce_keras_model, I get an error at line 55 in init.py at inbound_layers.append(res[inbound_layer_id]) I guess the problem happens when the model has a large number of filters
def get_simple_2d_model():
inp = keras.layers.Input((60,60,1))
x = Conv2D(32, 3, padding='same', kernel_initializer='random_uniform')(inp)
x = BatchNormalization()(x)
x = Conv2D(128, 3, padding='same', kernel_initializer='random_uniform')(inp)
x = MaxPool2D((2,2))(x)
x = BatchNormalization()(x)
x = Conv2D(256, 3, padding='same', kernel_initializer='random_uniform')(inp)
x = BatchNormalization()(x)
x = MaxPool2D((2,2))(x)
x = keras.layers.Activation('relu')(x)
x = Conv2D(512, 3, padding='same', kernel_initializer='random_uniform')(x)
x = BatchNormalization()(x)
x = MaxPool2D((2,2))(x)
x = Flatten()(x)
x = Dense (512, activation = tf.nn.relu,kernel_regularizer=l2(0.01))(x)
out = Dense(1, activation='sigmoid')(x)
model= keras.Model(inputs=inp, outputs=out)
return model
Can you please provide tensorflow and keras version?
I changed your code like that. And it works totally fine for me:
def get_simple_2d_model():
import tensorflow as tf
import tensorflow.keras as keras
from tensorflow.keras.layers import MaxPool2D, Flatten, ReLU
inp = keras.layers.Input((60,60,1))
x = Conv2D(32, 3, padding='same', kernel_initializer='random_uniform')(inp)
x = BatchNormalization()(x)
x = Conv2D(128, 3, padding='same', kernel_initializer='random_uniform')(inp)
x = MaxPool2D((2,2))(x)
x = BatchNormalization()(x)
x = Conv2D(256, 3, padding='same', kernel_initializer='random_uniform')(inp)
x = BatchNormalization()(x)
x = MaxPool2D((2,2))(x)
x = keras.layers.Activation('relu')(x)
x = Conv2D(512, 3, padding='same', kernel_initializer='random_uniform')(x)
x = BatchNormalization()(x)
x = MaxPool2D((2,2))(x)
x = Flatten()(x)
x = Dense(512)(x)
out = Dense(1, activation='sigmoid')(x)
model= keras.Model(inputs=inp, outputs=out)
return model
strangely, it's working. I am using TensorFlow 2.3.0. I get this error if I am loading a model with these params mentioned above. if I called function it works but if I loaded a pre-trained model it shows the error
May be it's because this line?
x = Dense (512, activation = tf.nn.relu,kernel_regularizer=l2(0.01))(x)
There are direct TF calls.
if I called this function, with no direct TF calls., I get the error
def get_simple_2d_model():
import tensorflow as tf
from tensorflow import keras
from keras.layers import MaxPool2D, Flatten, ReLU,Conv2D,BatchNormalization,Dense,Input
from keras.models import Sequential
model=Sequential()
model.add(Conv2D(32,kernel_2, input_shape=(60,60,1), strides = 1, padding='valid'))
model.add(BatchNormalization())
model.add(Conv2D(32,kernel_2))
model.add(MaxPool2D(pooling))
model.add(Dropout(dropout))
model.add(BatchNormalization())
model.add(Dropout(dropout))
model.add(BatchNormalization())
model.add(Flatten())
model.add(Dense(512))
model.add(Dropout(0.4))
model.add(Dense(num_classes, activation = 'softmax'))
return model