Closed programehr closed 2 years ago
No, that's not correct. get_layer
expected to get a layer_output: str
but now you pass a list to it.
https://ain-soph.github.io/trojanzoo/trojanzoo/utils/model.html#trojanzoo.utils.model.get_layer
I'm currently working on 1.1 version of trojanzoo, which shall contain huge updates, and fix all places inconsistent from original paper. And besides, the current docs only work for v1.1 or newer as well.
https://ain-soph.github.io/trojanzoo/
I just updated ABS in current github repo. You may take a try by installing using develop mode pip install -e .
Sadly ABS docs are still not done yet. Hope my codes could bring you a clean overview.
We expect model structure is
[preprocess, features, pool, flatten, classifier]
This is defined in trojanzoo.models._Model
(https://ain-soph.github.io/trojanzoo/trojanzoo/models.html#trojanzoo.models._Model)
Does your model structure follow this pattern?
No, that's not correct.
get_layer
expected to get alayer_output: str
but now you pass a list to it. https://ain-soph.github.io/trojanzoo/trojanzoo/utils/model.html#trojanzoo.utils.model.get_layerThat actually is a str and the code works. I'm just wondering if it is logically correct or not. I'm currently working on 1.1 version of trojanzoo, which shall contain huge updates, and fix all places inconsistent from original paper. And besides, the current docs only work for v1.1 or newer as well. https://ain-soph.github.io/trojanzoo/
I just updated ABS in current github repo. You may take a try by installing using develop mode
pip install -e .
Sadly ABS docs are still not done yet. Hope my codes could bring you a clean overview.
I have built my code on top of 1.0.8, and it is a bit difficult to a newer version. I may give it a try, though.
We expect model structure is
[preprocess, features, pool, flatten, classifier]
This is defined in
trojanzoo.models._Model
(https://ain-soph.github.io/trojanzoo/trojanzoo/models.html#trojanzoo.models._Model) Does your model structure follow this pattern?
I used the examples/defense code with model=resent18_comp and dataset=cifar10. So I guess it should be correct.
I see. I missed your [0] here and thought it was a list.
So you are actually taking the first layer of classifier.
Yes, it should work.
For the version, I have to say there are a bunch of breaking changes. If you are previously using 1.0.8 and dependent on some concrete implementation, you might find a lot of API changes. There are slight differences for ABS between trojanzoo 1.0.8 and original code. But it shall be fine. You may try the new version in the future.
The new version brings documentation, better code qualities, better code structure and better implementation consistency with original paper (I consulted many first authors of those papers). This is to support the TrojanZoo publication in EuroSP.
Btw, a small survey question. I planned to move to python 3.10 only after PyTorch 1.11 release (within one week). Do you think it’s totally unacceptable if you want to use the library in the future?
I'll close this issue if there is no further concern.
Feel free to reopen it if you have any question.
Hi,
I'm using the 1.0.8 version. Running ABS defense on resnet_comp18, I get the following error:
I realized that it is looking for a layer named
classifier
which is absent. I did the following ad-hoc fix:I'm not sure if it was the right thing to do. Is there something else I should do?
Thanks.