title: Getting error, "AttributeError: 'module' object has no attribute 'ifelse'"
body: <p>I am using Theano and Keras and using the below command, trying to load the weights of VGG Net from the .h5 file.</p>
  
  <p>VGG Net Model Definition:</p>
  
  <pre><code>def VGG_16(weights_path=None):
      model = Sequential()
      model.add(ZeroPadding2D((1,1),input_shape=(3,224,224)))
      model.add(Convolution2D(64, 3, 3, activation='relu'))
      model.add(ZeroPadding2D((1,1)))
      model.add(Convolution2D(64, 3, 3, activation='relu'))
      model.add(MaxPooling2D((2,2), strides=(2,2)))
  
      model.add(ZeroPadding2D((1,1)))
      model.add(Convolution2D(128, 3, 3, activation='relu'))
      model.add(ZeroPadding2D((1,1)))
      model.add(Convolution2D(128, 3, 3, activation='relu'))
      model.add(MaxPooling2D((2,2), strides=(2,2)))
  
      model.add(ZeroPadding2D((1,1)))
      model.add(Convolution2D(256, 3, 3, activation='relu'))
      model.add(ZeroPadding2D((1,1)))
      model.add(Convolution2D(256, 3, 3, activation='relu'))
      model.add(ZeroPadding2D((1,1)))
      model.add(Convolution2D(256, 3, 3, activation='relu'))
      model.add(MaxPooling2D((2,2), strides=(2,2)))
  
      model.add(ZeroPadding2D((1,1)))
      model.add(Convolution2D(512, 3, 3, activation='relu'))
      model.add(ZeroPadding2D((1,1)))
      model.add(Convolution2D(512, 3, 3, activation='relu'))
      model.add(ZeroPadding2D((1,1)))
      model.add(Convolution2D(512, 3, 3, activation='relu'))
      model.add(MaxPooling2D((2,2), strides=(2,2)))
  
      model.add(ZeroPadding2D((1,1)))
      model.add(Convolution2D(512, 3, 3, activation='relu'))
      model.add(ZeroPadding2D((1,1)))
      model.add(Convolution2D(512, 3, 3, activation='relu'))
      model.add(ZeroPadding2D((1,1)))
      model.add(Convolution2D(512, 3, 3, activation='relu'))
      model.add(MaxPooling2D((2,2), strides=(2,2)))
  
      model.add(Flatten())
      model.add(Dense(4096, activation='relu'))
      model.add(Dropout(0.5))
      model.add(Dense(4096, activation='relu'))
      model.add(Dropout(0.5))
      model.add(Dense(1000, activation='softmax'))
  
      if weights_path:
          model.load_weights(weights_path)
  
      return model
  </code></pre>
  
  <p>Trying to load the weights using the below command</p>
  
  <pre><code>model = VGG_16('vgg16_weights_th_dim_ordering_th_kernels.h5')
  </code></pre>
  
  <p>And got the below one as error:</p>
  
  <pre><code>'AttributeError Traceback (most recent call last)
  &lt;ipython-input-3-e815cc7d5738&gt; in &lt;module&gt;()
        1 #model = VGG_16('vgg16_weights_tf_dim_ordering_tf_kernels.h5')
  ----&gt; 2 model = VGG_16('vgg16_weights_th_dim_ordering_th_kernels.h5')
        3 #sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)
        4 #model.compile(optimizer=sgd, loss='categorical_crossentropy')
  
  &lt;ipython-input-2-f9b05d09c080&gt; in VGG_16(weights_path)
       39     model.add(Flatten())
       40     model.add(Dense(4096, activation='relu'))
  ---&gt; 41     model.add(Dropout(0.5))
       42     model.add(Dense(4096, activation='relu'))
       43     model.add(Dropout(0.5))
  
  c:\users\sekhar\onedrive\insofe\classes\week17\for_keras\keras-master\keras\models.pyc in add(self, layer)
      330                  output_shapes=[self.outputs[0]._keras_shape])
      331         else:
  --&gt; 332             output_tensor = layer(self.outputs[0])
      333             if isinstance(output_tensor, list):
      334                 raise TypeError('All layers in a Sequential model '
  
  c:\users\sekhar\onedrive\insofe\classes\week17\for_keras\keras-master\keras\engine\topology.pyc in __call__(self, x, mask)
      570         if inbound_layers:
      571             # This will call layer.build() if necessary.
  --&gt; 572             self.add_inbound_node(inbound_layers, node_indices, tensor_indices)
      573             # Outputs were already computed when calling self.add_inbound_node.
      574             outputs = self.inbound_nodes[-1].output_tensors
  
  c:\users\sekhar\onedrive\insofe\classes\week17\for_keras\keras-master\keras\engine\topology.pyc in add_inbound_node(self, inbound_layers, node_indices, tensor_indices)
      633         # creating the node automatically updates self.inbound_nodes
      634         # as well as outbound_nodes on inbound layers.
  --&gt; 635         Node.create_node(self, inbound_layers, node_indices, tensor_indices)
      636 
      637     def get_output_shape_for(self, input_shape):
  
  c:\users\sekhar\onedrive\insofe\classes\week17\for_keras\keras-master\keras\engine\topology.pyc in create_node(cls, outbound_layer, inbound_layers, node_indices, tensor_indices)
      164 
      165         if len(input_tensors) == 1:
  --&gt; 166             output_tensors = to_list(outbound_layer.call(input_tensors[0], mask=input_masks[0]))
      167             output_masks = to_list(outbound_layer.compute_mask(input_tensors[0], input_masks[0]))
      168             # TODO: try to auto-infer shape
  
  c:\users\sekhar\onedrive\insofe\classes\week17\for_keras\keras-master\keras\layers\core.pyc in call(self, x, mask)
      108             def dropped_inputs():
      109                 return K.dropout(x, self.p, noise_shape, seed=self.seed)
  --&gt; 110             x = K.in_train_phase(dropped_inputs, lambda: x)
      111         return x
      112 
  
  c:\users\sekhar\onedrive\insofe\classes\week17\for_keras\keras-master\keras\backend\theano_backend.pyc in in_train_phase(x, alt)
     1166     if callable(alt):
     1167         alt = alt()
  -&gt; 1168     x = theano.ifelse.ifelse(_LEARNING_PHASE, x, alt)
     1169     x._uses_learning_phase = True
     1170     return x
  
  AttributeError: 'module' object has no attribute 'ifelse'
  </code></pre>
  
  <p>What would be the probable solution to this problem??</p>
  
  <p>One of my friend says other than re-installing Anaconda and Theano there is no other alternative.  Please adivce.</p>