Skip to content

CEM_MAFImageExplainer - broken Example Notebook #117

Open
@mmschlk

Description

First, I want to thank you very much for providing this toolkit! I am eager to use your implementation for my own research!

Unfortunately, as I was working through the example "CEM-MAF-CelebA.ipynb" notebook for contrastive explanations, I was stopped dead while obtaining the pertinent negative explanation. (Code chunk 12)

Error message:

InvalidArgumentError: Conv2DCustomBackpropInputOp only supports NHWC.
	 [[{{node gradients/G_paper_1_1/cond/ToRGB_lod8/Conv2D_grad/Conv2DBackpropInput}}]]

During handling of the above exception, another exception occurred:

InvalidArgumentError                      Traceback (most recent call last)
<ipython-input-13-b1a3ab914e94> in <module>
      3                     arg_max_iterations, arg_initial_const, arg_gamma, None,
      4                     arg_attr_reg, arg_attr_penalty_reg,
----> 5                     arg_latent_square_loss_reg)
      6 
      7 print(info_pn)

c:\workspaces\aix360\aix360\algorithms\contrastive\CEM_MAF.py in explain_instance(self, sess, input_img, input_latent, arg_mode, arg_kappa, arg_binary_search_steps, arg_max_iterations, arg_initial_const, arg_gamma, arg_beta, arg_attr_reg, arg_attr_penalty_reg, arg_latent_square_loss_reg)
     95                             attr_penalty_reg=arg_attr_penalty_reg, latent_square_loss_reg=arg_latent_square_loss_reg)
     96 
---> 97             adv_img = attack_pn.attack(input_img, target_label, input_latent)
     98             adv_prob, adv_class, adv_prob_str = self._wbmodel.predict_long(adv_img)
     99             attr_mod = self.check_attributes_celebA(self._attributes, input_img, adv_img)

c:\workspaces\aix360\aix360\algorithms\contrastive\CEM_MAF_aen_PN.py in attack(self, imgs, labs, latent)
    268                 # perform the attack
    269                 
--> 270                 self.sess.run([self.train])
    271                 temp_adv_latent = self.sess.run(self.adv_latent)
    272                 self.sess.run(self.adv_updater, feed_dict={self.assign_adv_latent: temp_adv_latent})

...

InvalidArgumentError: Conv2DCustomBackpropInputOp only supports NHWC.
	 [[node gradients/G_paper_1_1/cond/ToRGB_lod8/Conv2D_grad/Conv2DBackpropInput (defined at c:\workspaces\aix360\aix360\algorithms\contrastive\CEM_MAF_aen_PN.py:197) ]]

Errors may have originated from an input operation.
Input Source operations connected to node gradients/G_paper_1_1/cond/ToRGB_lod8/Conv2D_grad/Conv2DBackpropInput:
 G_paper_1_1/cond/ToRGB_lod8/mul (defined at <string>:27)  

My setup:

I tried this example twice. Once on a windows machine (CPU only) and on a linux machine (CPU only). Both systems error out at the same step. The installation of aix360 worked both times according to the setup instructions in the git documentation.

My hypothesis:

I am thinking that the pickled CelebA model (karras2018iclr-celebahq-1024x1024.pkl) is the cause of this error.
Maybe the problem lies with the requirements. AIX360 needs tensorflow=1.14.0 whereas progressive_growing_of_gans requires tensorflow-gpu>=1.6.0.

I would really appreciate it, if you could help me out on this, as I want to know, if it's a model problem, which I can fix with my own models in the future, or if it's something more complicated than that.

Thank you very much in advance!

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions