diff --git a/keras_visualize_activations/read_activations.py b/keras_visualize_activations/read_activations.py
index 0e4641ac32bfcd48aa42cefb676d021e27697310..053439b84ebb50be638acb9d158694e2f3c1d9aa 100644
--- a/keras_visualize_activations/read_activations.py
+++ b/keras_visualize_activations/read_activations.py
@@ -1,5 +1,7 @@
 import keras.backend as K
 
+from keras.engine.input_layer import InputLayer
+from keras.layers.core import Masking
 
 def get_activations(model, model_inputs, print_shape_only=False, layer_name=None):
     print('----- activations -----')
@@ -12,8 +14,12 @@ def get_activations(model, model_inputs, print_shape_only=False, layer_name=None
         inp = [inp]
         model_multi_inputs_cond = False
 
+    # all layer outputs
+    # skip input and masking layers
     outputs = [layer.output for layer in model.layers if
-               layer.name == layer_name or layer_name is None]  # all layer outputs
+               (layer.name == layer_name or layer_name is None)
+               and not isinstance(layer, InputLayer)
+               and not isinstance(layer, Masking)]
 
     funcs = [K.function(inp + [K.learning_phase()], [out]) for out in outputs]  # evaluation functions