I am trying EfficientNet3 and it having this error before training the mode.
from keras.preprocessing.image import load_img
from keras.preprocessing.image import img_to_array
import skimage.io
from efficientnet.tfkeras import center_crop_and_resize, preprocess_input
from tensorflow import keras
SOUND_DIR = 'dataset/audio/Black-cappedChickadee/15233.mp3'
INFERENCE_PATH = 'dataset/audio/Black-cappedChickadee/'
import os
import skimage
import numpy
import librosa
N_FFT = 1024
HOP_SIZE = 1024
N_MELS = 128
WIN_SIZE = 1024
WINDOW_TYPE = 'hann'
FEATURE = 'mel'
FMIN = 0
def scale_minmax(X, min=0.0, max=1.0):
X_std = (X - X.min()) / (X.max() - X.min())
X_scaled = X_std * (max - min) + min
return X_scaled
def spectrogram_image(mels, out):
# use log-melspectrogram
#mels = librosa.feature.melspectrogram(y=y, sr=sr, n_mels=n_mels,
mels = numpy.log(mels + 1e-9) # add small number to avoid log(0)
# min-max scale to fit inside 8-bit range
img = scale_minmax(mels, 0, 255).astype(numpy.uint8)
img = numpy.flip(img, axis=0) # put low frequencies at the bottom in image
img = 255-img # invert. make black==more energy
# save as PNG
skimage.io.imsave(out, img)
signal, sr = librosa.load(SOUND_DIR,duration=10)
S = librosa.feature.melspectrogram(y=signal,sr=sr,
n_fft=N_FFT,
hop_length=HOP_SIZE,
n_mels=N_MELS,
htk=True,
fmin=FMIN,
fmax=sr/2)
spectrogram_image(S,SOUND_DIR.replace('mp3','png'))
IM_SIZE = (224,224,3)
BIRDS = ['Black-cappedChickadee','Black-crownedNightHeron','Black-neckedStilt','BlackRail','Blue-greyGnatcatcher','Blue-headedVireo','BlueJay','BohemianWaxwing','BorealChickadee','BrantGoose','Broad-wingedHawk','BrownCreeper','BrownThrasher']
DATA_PATH = 'TRAINING/'
BATCH_SIZE = 16
from shutil import copy
from keras.preprocessing.image import ImageDataGenerator
train_datagen = ImageDataGenerator(preprocessing_function=spectrogram_image,
width_shift_range=0.2,
height_shift_range=0.2,
shear_range=0.2,
zoom_range=0.1,
fill_mode='nearest')
train_batches=train_datagen.flow_from_directory(DATA_PATH,classes=BIRDS, target_size=IM_SIZE, class_mode='categorical',
shuffle=True, batch_size=BATCH_SIZE)
valid_datagen = ImageDataGenerator(rescale= 1.0/255.,
width_shift_range=0.2,
height_shift_range=0.2,
shear_range=0.2,
zoom_range=0.1,
fill_mode='nearest')
valid_batches = valid_datagen.flow_from_directory('VALIDATION/',
classes=BIRDS,
target_size=IM_SIZE,
class_mode='categorical', shuffle=False,
batch_size=BATCH_SIZE)
test_datagen = ImageDataGenerator(rescale= 1.0/255.0)
test_batches = test_datagen.flow_from_directory('TESTING/',
classes=BIRDS,
target_size=IM_SIZE,
class_mode='categorical', shuffle=False,
batch_size=BATCH_SIZE)
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Dropout, Flatten, Dense
from tensorflow.keras import optimizers
import efficientnet.keras as efn
#IM_SIZE = (224,224,3)
net = efn.EfficientNetB3(include_top=False,
weights='imagenet',
input_tensor=None,
input_shape=IM_SIZE)
x = net.output
x = Flatten()(x)
x = Dropout(0.5)(x)
output_layer = Dense(len(BIRDS), activation='softmax', name='softmax')(x)
net_final = Model(inputs=net.input, outputs=output_layer)
net_final.compile(optimizer=Adam(),loss='categorical_crossentropy', metrics=['accuracy'])
--------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) <ipython-input-110-0472f98cc796> in <module> 8 weights='imagenet', 9 input_tensor=None, ---> 10 input_shape=IM_SIZE) 11 x = net.output 12 x = Flatten()(x) /anaconda3/lib/python3.7/site-packages/efficientnet/__init__.py in
wrapper(*args, **kwargs) 42 kwargs['models'] = keras.models 43 kwargs['utils'] = keras.utils ---> 44 return func(*args, **kwargs) 45 46 return wrapper
/anaconda3/lib/python3.7/site-packages/efficientnet/model.py in EfficientNetB3(include_top, weights, input_tensor, input_shape,
pooling, classes, **kwargs) 528 input_tensor=input_tensor, input_shape=input_shape, 529 pooling=pooling, classes=classes, --> 530 **kwargs 531 ) 532
/anaconda3/lib/python3.7/site-packages/efficientnet/model.py in EfficientNet(width_coefficient, depth_coefficient,
default_resolution, dropout_rate, drop_connect_rate, depth_divisor, blocks_args, model_name, include_top, weights, input_tensor, input_shape, pooling, classes, **kwargs) 327 328 if input_tensor is None: --> 329 img_input = layers.Input(shape=input_shape) 330 else: 331 if backend.backend() == 'tensorflow':
/anaconda3/lib/python3.7/site-packages/tensorflow/python/keras/engine/input_layer.py
in Input(shape, batch_size, name, dtype, sparse, tensor, ragged, **kwargs)
/anaconda3/lib/python3.7/site-packages/tensorflow/python/keras/utils/version_utils.py
in new(cls, *args, **kwargs)
/anaconda3/lib/python3.7/site-packages/tensorflow/python/util/lazy_loader.py
in getattr(self, item)
/anaconda3/lib/python3.7/site-packages/tensorflow/python/util/lazy_loader.py
in _load(self)
/anaconda3/lib/python3.7/importlib/__init__.py in import_module(name, package) 125 break 126 level += 1 --> 127 return _bootstrap._gcd_import(name[level:], package, level) 128 129 /anaconda3/lib/python3.7/importlib/_bootstrap.py in _gcd_import(name, package, level) /anaconda3/lib/python3.7/importlib/_bootstrap.py in _find_and_load(name, import_) /anaconda3/lib/python3.7/importlib/_bootstrap.py in _find_and_load_unlocked(name, import_)
ModuleNotFoundError: No module named 'tensorflow.python.keras.engine.base_layer_v1'
I have tried all the previous sources + downgrading tensor flow and Keras. But it's still the same. Any inputs would be appreciated.