Reputation: 1855
Import libraries and models,
from __future__ import print_function
import keras
from keras.datasets import mnist
from tensorflow.keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from tensorflow.keras.layers import Conv2D
from tensorflow.keras.layers import MaxPooling2D
#from tensorflow.keras.layers import backend as k
batch_size = 128
num_classes = 10
epochs = 12
Below the written code,
model = Sequential()
model.add(Conv2D(32, kernel_size=(3,3), strides=(1,1), activation="relu", input_shape=(28, 28, 1) ))
model.add(Conv2D(32, kernel_size=(3,3), strides=(1,1), activation="relu"))
model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2) ))
model.add(Dropout(0.5))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))
Below the type error, which I badly faced and i can't make the solution,
TypeError Traceback (most recent call last)
<ipython-input-6-6c99a01e13d4> in <module>
7 model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2) ))
8
----> 9 model.add(Dropout(0.5))
10 model.add(Flatten())
TypeError: The added layer must be an instance of class Layer. Found: <keras.layers.core.Dropout object at 0x000001622999A5F8>
Now, How should i solve this type of error? Need Help,
Upvotes: 2
Views: 4004
Reputation: 2782
Use Keras or tensorflow.keras
, don't use both of them.
from __future__ import print_function
from tensorflow import keras
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Flatten
from tensorflow.keras.layers import Conv2D
from tensorflow.keras.layers import MaxPooling2D
from tensorflow.keras import backend as k
batch_size = 128
num_classes = 10
epochs = 12
model = Sequential()
model.add(Conv2D(32, kernel_size=(3,3), strides=(1,1), activation="relu", input_shape=(28, 28, 1) ))
model.add(Conv2D(32, kernel_size=(3,3), strides=(1,1), activation="relu"))
model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2) ))
model.add(Dropout(0.5))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))
Upvotes: 3
Reputation: 3564
The problem you have created your model using tensorflow.keras
instance and you are trying to add layers of Keras
instance.
Tensorflow has its own Keras version. So use only one.
Your code runs after fixing your import statements.
Code:
from __future__ import print_function
from tensorflow import keras
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Flatten
from tensorflow.keras.layers import Conv2D
from tensorflow.keras.layers import MaxPooling2D
#from tensorflow.keras.layers import backend as k
Upvotes: 1