From 2edd1cba352417ce7c75c45989a2118877b805c8 Mon Sep 17 00:00:00 2001 From: narugo1992 Date: Wed, 15 Nov 2023 14:45:52 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=2092bb0?= =?UTF-8?q?3e12955746a0bb94df103e943bbe604b66e=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/.buildinfo | 2 +- main/.doctrees/api_doc/config/index.doctree | Bin 3187 -> 3187 bytes main/.doctrees/api_doc/config/meta.doctree | Bin 11068 -> 11068 bytes .../api_doc/corrupt/aicorrupt.doctree | Bin 0 -> 35014 bytes main/.doctrees/api_doc/corrupt/index.doctree | Bin 0 -> 3205 bytes main/.doctrees/api_doc/fidelity/ccip.doctree | Bin 37202 -> 37202 bytes main/.doctrees/api_doc/fidelity/index.doctree | Bin 3926 -> 3926 bytes main/.doctrees/api_doc/utils/images.doctree | Bin 11035 -> 11035 bytes main/.doctrees/api_doc/utils/index.doctree | Bin 3205 -> 3205 bytes main/.doctrees/api_doc/utils/tqdm_.doctree | Bin 9575 -> 9575 bytes main/.doctrees/environment.pickle | Bin 41604 -> 53066 bytes main/.doctrees/index.doctree | Bin 4364 -> 4393 bytes .../.doctrees/information/environment.doctree | Bin 7332 -> 7278 bytes .../information/environment.result.doctree | Bin 7285 -> 7285 bytes .../nbsphinx/information/environment.ipynb | 10 +- .../information/environment.result.ipynb | 10 +- .../tutorials/installation/index.doctree | Bin 6151 -> 6151 bytes .../tutorials/quick_start/index.doctree | Bin 2486 -> 2486 bytes main/_modules/index.html | 4 +- main/_modules/sdeval/corrupt/aicorrupt.html | 392 ++++++++++++++++++ main/_modules/sdeval/fidelity/ccip.html | 1 + main/_modules/sdeval/utils/images.html | 1 + main/_modules/sdeval/utils/tqdm_.html | 1 + .../api_doc/corrupt/aicorrupt.rst.txt | 22 + main/_sources/api_doc/corrupt/index.rst.txt | 12 + main/_sources/index.rst.txt | 1 + .../information/environment.result.ipynb.txt | 10 +- main/api_doc/config/index.html | 1 + main/api_doc/config/meta.html | 5 +- main/api_doc/corrupt/aicorrupt.html | 323 +++++++++++++++ main/api_doc/corrupt/index.html | 252 +++++++++++ main/api_doc/fidelity/ccip.html | 1 + main/api_doc/fidelity/index.html | 5 +- main/api_doc/utils/images.html | 1 + main/api_doc/utils/index.html | 1 + main/api_doc/utils/tqdm_.html | 1 + main/genindex.html | 53 ++- main/index.html | 5 + main/information/environment.html | 3 +- main/information/environment.ipynb | 10 +- main/information/environment.result.html | 3 +- main/information/environment.result.ipynb | 10 +- main/objects.inv | Bin 1129 -> 1325 bytes main/py-modindex.html | 11 + main/search.html | 1 + main/searchindex.js | 2 +- main/tutorials/installation/index.html | 1 + main/tutorials/quick_start/index.html | 1 + 48 files changed, 1118 insertions(+), 38 deletions(-) create mode 100644 main/.doctrees/api_doc/corrupt/aicorrupt.doctree create mode 100644 main/.doctrees/api_doc/corrupt/index.doctree create mode 100644 main/_modules/sdeval/corrupt/aicorrupt.html create mode 100644 main/_sources/api_doc/corrupt/aicorrupt.rst.txt create mode 100644 main/_sources/api_doc/corrupt/index.rst.txt create mode 100644 main/api_doc/corrupt/aicorrupt.html create mode 100644 main/api_doc/corrupt/index.html diff --git a/main/.buildinfo b/main/.buildinfo index 2d5a6b6..344c2e1 100644 --- a/main/.buildinfo +++ b/main/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 270192e2b460c9d451d3ffa43f293a3d +config: a00f47e07a3d2e9298400afb13a3d525 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/main/.doctrees/api_doc/config/index.doctree b/main/.doctrees/api_doc/config/index.doctree index f57b0bcfaa76e942c5543d876317f796d590bb4e..f90cfa94b0f6050a64de63631a450ea0c12cdcdc 100644 GIT binary patch delta 171 zcmew?@mXR+B%@(TWmZ~7L0*BrrBPCnfpMy#k)^4rxrte#K~j>XNlKa_P|VWAI4LRB d%)lhc%q(?s7vn+Fb#1O;(&r#U+a0dyi~#yKG(7+S delta 171 zcmew?@mXR+B%@(+c6q5uwwZx`nrVtjYKozOg=LblskxDni3yNxY;0&?lwxLVVQy$< dZft5|W^6dQi}4`ox;ED^>2r{w?GD#;MgZ}oEv*0m diff --git a/main/.doctrees/api_doc/config/meta.doctree b/main/.doctrees/api_doc/config/meta.doctree index a4d07ce73a256d9b884e38bd2be805e045d375d7..73c9e38377e2f91e63c6b2d4f529ced6d172198f 100644 GIT binary patch delta 852 zcmdlJwkK>uGNWNhWmZ~7L0*BrrBPCnfpMy#k)^4rxrte#K~j>XNlKa_P|VWAI4LRB z%)lhc%q(^C6vk6z=xP))n_RESI{6gSXYzD!R$=L7B1@~~W@&b2a(vn-WI0)yU10MJ zj#w7*Y@Qs?dzNgS0+V?~xHfO#Tfj`Z5t|!@_{j6J?`B?+c5=P@PvSJ`Zk-GY=YJCX oo1LUqlHpaTcJ|40<@qLO$sHow0qmRS%2#uerQK|Ez2;s<0NoV=od5s; delta 852 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 literal 0 HcmV?d00001 diff --git a/main/.doctrees/api_doc/corrupt/index.doctree b/main/.doctrees/api_doc/corrupt/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..d536b1c48befec212fc409a11ebae4f24a6263af GIT binary patch literal 3205 zcmc&$TW=gS6i%A#W;fYvE+v&v6DUFzsc5okn+8%UAp}oE%0q>Ct1QoqcWp8=9&Ast zL8=4~MUCVaRP)dH1N;cy`8>D16bXqJRvKx2e0*;H&gb)U>-V2}3&qcF=!}bWd`P1x zl@ZgmK~#Ub%hSRrE^BT!qZp1!#m^#F1jDd+BW7s~ZvP!|MEsW}y)> zZI1I6Z}XLxZl8B;%Lo&*sV&>r5xb=EVJMZ#GvmA_6qmnaV;{jg`>$OYQ#+%G0Qy_D zOPY}Rl5JO!p4;VEq|BY?0kx~t7$t(-AVZ(gl8CgAekF{l))3-C?}SPv}t) zoE}HRN06N!KM4YMa&#P=oUj2x*Ml0&T zWo`L~$clf2(tV8YKE6-zJ@6T#NJC5A{B;^!|eK*uLlB7NB87#K0Z`o5mo2{filTto<{E$VgXkq zL!;O<%KoKD{I1>k$J)=7@7%sWuS7)++g}~EJ&}fS9q{P)d_Z!=^UR7VWxcL0lji52Z>RBz+I-i~zZwTs2JIEhQ{wg@jxQ!%0m@ z@K_zF80y^i6w9PCBxaW^c4xQjDyMO?Y}qX~Mi(I)lj~ZkWm^#o@)6wiuc%5?UDKNkuqKqZnwy#UZ!QIJ+Tp zGi#+)SaEi5ZfDK}|IPMGqmuyYqr0;kb0_VlPe7we9QBEjkhAMCO-DH$F_b&P`W8CO z-c}6gjR@Ki;D8&?is!Z+%5;bvQ4SH23`{S^j<;=}=0=i<$S&T8;V4fs(tr*{Ed&C1 zQz?zTy^TVG%BI?1{X~>$mPe9|6A!0NHqNAGAil}T0wJLxmqLpYo*N_*ng+4YqY84R zZU+9)_K=GP{Aooh>y;X*8OYx8|KLP3<#lko-dcp~UIT?ROTcr>cN9>QjsU_~B*M6F z7ykUKW&0V+2&w`mO2eXJJue9;qW7&~?{Q-?{cJF}y1D{`8!ppBsYV05>jP-&fwMdQ zL=g&35W^DOlfk`oAV0W&bc|N*t6@0j#!Dt{c563AN=zGqnPK6En4k#kyRQScbGD zce@vIiuS?vmA!^47bV2$i#&r1KN%IQU2y;?9ukobfq|M7wmnVgJebwnWFYUF zoG}AyJ7Fy81z`ylF~PK^STVP}u}dty^h1vAl=Ogp1iUaN2;kiiL)D0ZZZHaL!4cqM zz>COB3Uy zq*OBllO!{<)X6g#FOZ?D(ba16Wu_W(ECgxY#gfEMmaT4^C-aynkg3&9msgA|t)ZJQ sI@goo*UgQtf5>yJ`{cMPj?I75UJ8-rVE4^&RV<=pX|>vXw!f7T0A1p^y#N3J delta 594 zcmcb#i0RTIrVZ(ghRNCGr6$>C2Ks5HDJH2Yh6WavNyet;Mn)zkK(?{5p@C6~nX!er zp_#d{sfn4f;p7>N7s$}n=xVk3GE)sX7J{_yVo72r%T~9|lX*-O$kb}5%PU5f*3iut so$JZ)>*hw+Kjb;qeR5nC$L7CjFNMf*u>0n?Di%?)v|4RG+uzCv06aya-2eap diff --git a/main/.doctrees/api_doc/fidelity/index.doctree b/main/.doctrees/api_doc/fidelity/index.doctree index 140f0a3c8f8710aded3a39fa37f99b58528d327f..795724023c54e45e842b61932a062b095966a269 100644 GIT binary patch delta 233 zcmca6cTH|XETdsbWmZ~7L0*BrrBPCnfpMy#k)^4rxrte#K~j>XNlKa_P|VWAI4LRB s%)lhc%q(?sALDT{biHM^oqU+-C+Rvjzh$1wNxHVlKnpkj;EiJh0IP>dK>z>% delta 233 zcmca6cTH|XETds^c6q5uwwZx`nrVtjYKozOg=LblskxDni3yNxY;0&?lwxLVVQy$< sZft5|W^6dQkMTGey52I|PCm@^lXRV%-!jkTBwgENpoN=%@WwF$0Mp+XNlKa_P|VWAI4LRB z%)lhc%q(^CG{&=J=$gQ4vH1+sWG2$JZl1t;On`K4lP9pcZ$2khE<~1Ai_Pmaa~T0i Cty(7l delta 293 zcmbOoHal!XDx+a?c6q5uwwZx`nrVtjYKozOg=LblskxDni3yNxY;0&?lwxLVVQy$< zZft5|W^6cl8sk|qbWLEj*nEa*G85@qH&0+aCP2Ej$rD)JH=h$L7a~im#pZRIxr_iR Cpiegd diff --git a/main/.doctrees/api_doc/utils/index.doctree b/main/.doctrees/api_doc/utils/index.doctree index 9928a67a7ab1d0979efd5bd6e90d18e7ca3991ec..1de3fa722d3cdb86eff0558122c29b823438d734 100644 GIT binary patch delta 175 zcmZpbY?a&)&S+RtnU$7NkXN8@X_S;?V4P}bWNB(@Zeo^bkd$O;l9FZ!6tgrjPD)BO hGcZXqGfSP^!MKkMT_3nCHm_$A;2>S=<_}y`83A9LHAesd delta 175 zcmZpbY?a&)&S;pNU0!OEZDydKW}0G>nqp{RVVPuXYHnm?Vgh6v8ygxJrI;C8m>Zgz h8=IP#85>USVBANBt`A%mo7Xc5aFDKb^9Qb}i~vQ5F1G*x diff --git a/main/.doctrees/api_doc/utils/tqdm_.doctree b/main/.doctrees/api_doc/utils/tqdm_.doctree index 3d47ed5dbc1ec6300572d232e696caf81a4a2483..633af3f3f381e8b02e17724f42406e23330412fd 100644 GIT binary patch delta 297 zcmaFv_1tSiDx+aZWmZ~7L0*BrrBPCnfpMy#k)^4rxrte#K~j>XNlKa_P|VWAI4LRB z%)lhc%q(^CG{#e;>)Je#DT9f0ZIdT5nQcyBUB^kD*2xL19Gh$T#YD)`ZoT=xat0#+ Di^y7N delta 297 zcmaFv_1tSiDx+a?c6q5uwwZx`nrVtjYKozOg=LblskxDni3yNxY;0&?lwxLVVQy$< zZft5|W^6cl8sjO_b#0!=l)*&0w#gHj%r+;muHz(6>*NGhj?K0FVj^T|x8D3;IfD@Z DK>JU4 diff --git a/main/.doctrees/environment.pickle b/main/.doctrees/environment.pickle index 0f5d573217b12d9060823a5b69f82456bbb3daac..526c53d28026fa8ef91d90fb4cc08b823d4c8b87 100644 GIT binary patch literal 53066 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 G-2Vlyv92fp diff --git a/main/.doctrees/index.doctree b/main/.doctrees/index.doctree index 2828077047bdec2cb5b5eebc8a41568b23a8ad73..7ef4a82abec2b2583878dc056f87785167910645 100644 GIT binary patch delta 184 zcmeBCTB*d+z&cfKBTGG_VM%3HT1G)$fxe|tQj&pjs-cmksj0b%S)xHwlBG#Xnjuik z(!@9^Db>utB+1Myb@LX+ORNH-i3OSQDf!9z$@xV^r3EFEtJ%GnGEPlC%5KDXcJdGQ zJwlI5Gqf|3Gh{P#GUU8fGNd!EPUhq=-Ta&5HWQ=V=Ih+snKgf8e9icf@wT*wGcPeW kwWP8jwRlSH6pf4@of#iGOEVNf?5`O-8E-dl=MQBB0J$1PW&i*H delta 164 zcmZ3f)T6}Gz&e$2BTGG_VRCkPsY$k(fqt54ib-mUp@D^ElCi0|k&%fBkZo*iXke6L zW^7?@Xl8C~YGP(=xOofXCDzFc+3hDkVmD$uJz11vkI=)?4DF2M4A~5w3^{M*4C#!^ zlhrs(H%oBdW@41t{Dpfvv*x#q&l&GBUYGW8<|XE)mQ)s`7Eh_2qLJ~fGvi%nX@(+* P{W*gtRzp diff --git a/main/.doctrees/information/environment.doctree b/main/.doctrees/information/environment.doctree index 1e41340fa48d221738a2e8df76449cd7013ffcbe..48eeaa80d34d10ab153a6b9139217a3eaabdec43 100644 GIT binary patch delta 222 zcmZ2t`Obo+fpu!~MizNS!;;FZw2Xqh0)0!Pq$C65R6`?6Q&V#jvqXcWBukT&G((`6 zrHOG;QmUDONs^ga>gEu}_neHUCd>0o^_`6XwX>v}1+JZ%HbF!c#Hvr^KMCkwk delta 279 zcmaE7vBZ+4fpzN4jV$tvhRNCGr6$>C2Ks5HDJH2Yh6WavNyet;Mn)zkK(?{5p@C6~ znX!erp_#d{sfn4f;pPy=_nhpPYzm4}?YJfv2y_dY8(8WY8=0G%8bE-_PJtNFgGbF~T|q}~0Dp2w AmjD0& diff --git a/main/.doctrees/information/environment.result.doctree b/main/.doctrees/information/environment.result.doctree index 870bf436be91a875916e68346ead553cea8464f9..57adf7b599eb536d4523b8c7671758ae67be9561 100644 GIT binary patch delta 166 zcmexr@zr93GNWNhWmZ~7L0*BrrBPCnfpMy#k)^4rxrte#K~j>XNlKa_P|VWAI4LRB z%)lhc%q(?t2xA8qhlRO;p1HY^`DA`R?aBN+3(y7FH^1bOV}y$?=I29jfO;Gzhx0#$ U%K`<{9 delta 166 zcmexr@zr93GNWN~c6q5uwwZx`nrVtjYKozOg=LblskxDni3yNxY;0&?lwxLVVQy$< zZft5|W^A}Qgt3E*!`#qN4=8LjnV(O4GC$7(bOH9wFL~q`;i8NA`4AkS9*4={{7>Ps TKmo1Ec>+^V1U8!pI&uR52iqu} diff --git a/main/.doctrees/nbsphinx/information/environment.ipynb b/main/.doctrees/nbsphinx/information/environment.ipynb index f5caa5d..c64c8d7 100644 --- a/main/.doctrees/nbsphinx/information/environment.ipynb +++ b/main/.doctrees/nbsphinx/information/environment.ipynb @@ -29,10 +29,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2023-11-15T14:39:53.849066Z", - "iopub.status.busy": "2023-11-15T14:39:53.848856Z", - "iopub.status.idle": "2023-11-15T14:39:55.028070Z", - "shell.execute_reply": "2023-11-15T14:39:55.027293Z" + "iopub.execute_input": "2023-11-15T14:45:48.042344Z", + "iopub.status.busy": "2023-11-15T14:45:48.042147Z", + "iopub.status.idle": "2023-11-15T14:45:49.208493Z", + "shell.execute_reply": "2023-11-15T14:45:49.207735Z" }, "pycharm": { "name": "#%%\n" @@ -53,7 +53,7 @@ "text": [ "CPU Brand: AMD EPYC 7763 64-Core Processor\n", "CPU Count: 4\n", - "CPU Freq: 2709.3277500000004 MHz\n", + "CPU Freq: 2947.16475 MHz\n", "Memory Size: 15.607 GiB\n", "Has CUDA: No\n" ] diff --git a/main/.doctrees/nbsphinx/information/environment.result.ipynb b/main/.doctrees/nbsphinx/information/environment.result.ipynb index b12fb7e..55fa708 100644 --- a/main/.doctrees/nbsphinx/information/environment.result.ipynb +++ b/main/.doctrees/nbsphinx/information/environment.result.ipynb @@ -29,10 +29,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2023-11-15T14:39:27.714891Z", - "iopub.status.busy": "2023-11-15T14:39:27.714338Z", - "iopub.status.idle": "2023-11-15T14:39:28.893554Z", - "shell.execute_reply": "2023-11-15T14:39:28.892732Z" + "iopub.execute_input": "2023-11-15T14:45:23.805530Z", + "iopub.status.busy": "2023-11-15T14:45:23.805339Z", + "iopub.status.idle": "2023-11-15T14:45:25.000513Z", + "shell.execute_reply": "2023-11-15T14:45:24.999739Z" }, "pycharm": { "name": "#%%\n" @@ -47,7 +47,7 @@ "Python: CPython 3.8.18\n", "CPU Brand: AMD EPYC 7763 64-Core Processor\n", "CPU Count: 4\n", - "CPU Freq: 2711.63825 MHz\n", + "CPU Freq: 2870.77275 MHz\n", "Memory Size: 15.607 GiB\n", "Has CUDA: No\n" ] diff --git a/main/.doctrees/tutorials/installation/index.doctree b/main/.doctrees/tutorials/installation/index.doctree index 903fe1ef1c973715fe6ac4e1376a0bf65bb5a761..2d83de527d201175f28703701ce0da06b2a2d099 100644 GIT binary patch delta 180 zcmZoSXgAmp&S+RtnU$7NkXN8@X_S;?V4P}bWNB(@Zeo^bkd$O;l9FZ!6tgrjPD)BO kGcZXqGfSQPj$3W>Iz}&cvb0)mPU4JaB3nqp{RVVPuXYHnm?Vgh6v8ygxJrI;C8m>Zgz k8=IP#85>T1$E~(`9itaJSz0YOCviqIk*;;~J8nrH0B@`?0RR91 diff --git a/main/.doctrees/tutorials/quick_start/index.doctree b/main/.doctrees/tutorials/quick_start/index.doctree index edfbd7d583b0c621968e88fbf1a17e6ec329e127..339d575b596e98df8a84103cb11493147cb5d582 100644 GIT binary patch delta 62 zcmdlcyiIsRD5GIXWmZ~7L0*BrrBPCnfpMy#k)^4rxrte#K~j>XNlKa_P|VWAI4LRB Q%)lhc%q(?t8>0aS0B+9`mjD0& delta 62 zcmdlcyiIsRD5GI=c6q5uwwZx`nrVtjYKozOg=LblskxDni3yNxY;0&?lwxLVVQy$< QZft5|W^A~*jnRMu066FnX8-^I diff --git a/main/_modules/index.html b/main/_modules/index.html index 4442fd3..7363cf1 100644 --- a/main/_modules/index.html +++ b/main/_modules/index.html @@ -101,6 +101,7 @@

API Documentation

@@ -166,7 +167,8 @@

All modules for which code is available

-
  • sdeval.fidelity.ccip
  • + diff --git a/main/_modules/sdeval/corrupt/aicorrupt.html b/main/_modules/sdeval/corrupt/aicorrupt.html new file mode 100644 index 0000000..54aa544 --- /dev/null +++ b/main/_modules/sdeval/corrupt/aicorrupt.html @@ -0,0 +1,392 @@ + + + + + + + + + + + sdeval.corrupt.aicorrupt — sdeval 0.0.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + + + + + +
    + +
    + + + + + + + + + + + + + + + + + +
    + +
      + +
    • Docs »
    • + +
    • Module code »
    • + +
    • sdeval.corrupt.aicorrupt
    • + + +
    • + +
    • + +
    + + +
    +
    +
    +
    + + + +

    Source code for sdeval.corrupt.aicorrupt

    +"""
    +Overview:
    +    AI image corrupt evaluation metrics.
    +"""
    +import json
    +from functools import lru_cache
    +from typing import Tuple, Optional, Mapping
    +
    +import numpy as np
    +from PIL import Image
    +from huggingface_hub import hf_hub_download
    +from imgutils.data import rgb_encode, ImageTyping, load_image
    +from imgutils.utils import open_onnx_model
    +
    +from ..utils import ImagesTyping, load_images, tqdm
    +
    +_DEFAULT_MODEL_NAME = 'caformer_s36_v0_focal'
    +
    +
    +@lru_cache()
    +def _open_anime_aicop_model(model_name: str):
    +    """
    +    Open the AI image corrupted detection model.
    +
    +    This function downloads and opens the AI image corrupted detection model specified by the given model name using Hugging Face Hub.
    +
    +    :param model_name: The name of the AI image corrupted detection model.
    +    :type model_name: str
    +
    +    :return: The opened AI image corrupted detection model.
    +    :rtype: Model
    +    """
    +    return open_onnx_model(hf_hub_download(
    +        f'deepghs/ai_image_corrupted',
    +        f'{model_name}/model.onnx',
    +    ))
    +
    +
    +@lru_cache()
    +def _open_anime_aicop_meta(model_name: str):
    +    """
    +    Open the meta information of the AI image corrupted detection model.
    +
    +    This function downloads and opens the meta information of the AI image corrupted detection model specified by the given model name using Hugging Face Hub.
    +
    +    :param model_name: The name of the AI image corrupted detection model.
    +    :type model_name: str
    +
    +    :return: The opened meta information of the AI image corrupted detection model.
    +    :rtype: dict
    +    """
    +    with open(hf_hub_download(
    +            f'deepghs/ai_image_corrupted',
    +            f'{model_name}/meta.json',
    +    ), 'r', encoding='utf-8') as f:
    +        return json.load(f)
    +
    +
    +@lru_cache()
    +def _open_anime_aicop_labels(model_name: str):
    +    """
    +    Open the labels of the AI image corrupted detection model.
    +
    +    This function opens the labels of the AI image corrupted detection model specified by the given model name.
    +
    +    :param model_name: The name of the AI image corrupted detection model.
    +    :type model_name: str
    +
    +    :return: The labels of the AI image corrupted detection model.
    +    :rtype: List[str]
    +    """
    +    return _open_anime_aicop_meta(model_name)['labels']
    +
    +
    +def _img_encode(image: Image.Image, size: Tuple[int, int] = (384, 384),
    +                normalize: Optional[Tuple[float, float]] = (0.5, 0.5)):
    +    """
    +    Encode the image for AI image corrupted detection.
    +
    +    This function resizes and encodes the image for AI image corrupted detection.
    +
    +    :param image: The input image.
    +    :type image: Image.Image
    +    :param size: The target size for encoding. Default is (384, 384).
    +    :type size: Tuple[int, int]
    +    :param normalize: The normalization parameters. Default is (0.5, 0.5).
    +    :type normalize: Optional[Tuple[float, float]]
    +
    +    :return: The encoded image data.
    +    :rtype: np.ndarray
    +    """
    +    image = image.resize(size, Image.BILINEAR)
    +    data = rgb_encode(image, order_='CHW')
    +
    +    if normalize is not None:
    +        mean_, std_ = normalize
    +        mean = np.asarray([mean_]).reshape((-1, 1, 1))
    +        std = np.asarray([std_]).reshape((-1, 1, 1))
    +        data = (data - mean) / std
    +
    +    return data.astype(np.float32)
    +
    +
    +
    [docs]def get_ai_corrupted(image: ImageTyping, model_name: str = _DEFAULT_MODEL_NAME) -> Mapping[str, float]: + """ + Get AI image corrupted detection scores for an image. + + This function calculates AI image corrupted detection scores for a given image using the specified model. + + :param image: The input image. + :type image: ImageTyping + :param model_name: The name of the AI image corrupted detection model. Default is 'caformer_s36_v0_focal'. + :type model_name: str + + :return: A dictionary containing the corrupted score. + :rtype: Mapping[str, float] + """ + image = load_image(image, force_background='white', mode='RGB') + input_ = _img_encode(image)[None, ...] + output, = _open_anime_aicop_model(model_name).run(['output'], {'input': input_}) + return dict(zip(_open_anime_aicop_labels(model_name), output[0].tolist()))
    + + +
    [docs]class AICorruptMetrics: + """ + Class for calculating an AI image corruptness score. + + The `AICorruptMetrics` class allows you to calculate an AI image corruptness score using the AI image corrupted detection model. + + :param model_name: The name of the AI image corrupted detection model. Default is 'caformer_s36_v0_focal'. + :type model_name: str + :param silent: If True, suppresses progress bars and additional output during calculation. + :type silent: bool + :param tqdm_desc: Description for the tqdm progress bar during calculation. + :type tqdm_desc: str + """ + +
    [docs] def __init__(self, model_name: str = _DEFAULT_MODEL_NAME, + silent: bool = False, tqdm_desc: str = None): + self._model_name = model_name + self.silent = silent + self.tqdm_desc = tqdm_desc or self.__class__.__name__
    + +
    [docs] def score(self, images: ImagesTyping, silent: bool = None): + """ + Calculate the AI image corruptness score for a set of images. + + This method calculates the AI image corruptness score for a set of input images using the AI image corrupted detection model. + + :param images: The set of input images for calculating the AI image corruptness score. + :type images: ImagesTyping + :param silent: If True, suppresses progress bars and additional output during calculation. + :type silent: bool + + :return: The AI image corruptness score. + :rtype: float + """ + image_list = load_images(images) + if not image_list: + raise FileNotFoundError(f'Images for calculating AI corrupt score not provided - {images}.') + + scores = np.array([ + get_ai_corrupted(image, model_name=self._model_name)['corrupted'] + for image in tqdm(image_list, silent=self.silent if silent is None else silent, desc=self.tqdm_desc) + ]) + return 1.0 - scores.mean().item()
    +
    + + +
    + +
    + + +
    +
    + +
    + +
    + +
    + + Other Versions + v: main + + +
    +
    +
    Branches
    +
    main
    +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/main/_modules/sdeval/fidelity/ccip.html b/main/_modules/sdeval/fidelity/ccip.html index 4c6499d..baef84e 100644 --- a/main/_modules/sdeval/fidelity/ccip.html +++ b/main/_modules/sdeval/fidelity/ccip.html @@ -101,6 +101,7 @@

    API Documentation

    diff --git a/main/_modules/sdeval/utils/images.html b/main/_modules/sdeval/utils/images.html index db600a3..982585d 100644 --- a/main/_modules/sdeval/utils/images.html +++ b/main/_modules/sdeval/utils/images.html @@ -101,6 +101,7 @@

    API Documentation

    diff --git a/main/_modules/sdeval/utils/tqdm_.html b/main/_modules/sdeval/utils/tqdm_.html index 930a333..24abff1 100644 --- a/main/_modules/sdeval/utils/tqdm_.html +++ b/main/_modules/sdeval/utils/tqdm_.html @@ -101,6 +101,7 @@

    API Documentation

    diff --git a/main/_sources/api_doc/corrupt/aicorrupt.rst.txt b/main/_sources/api_doc/corrupt/aicorrupt.rst.txt new file mode 100644 index 0000000..c53b313 --- /dev/null +++ b/main/_sources/api_doc/corrupt/aicorrupt.rst.txt @@ -0,0 +1,22 @@ +sdeval.corrupt.aicorrupt +================================= + +.. currentmodule:: sdeval.corrupt.aicorrupt + +.. automodule:: sdeval.corrupt.aicorrupt + + +get_ai_corrupted +--------------------------------- + +.. autofunction:: get_ai_corrupted + + + +AICorruptMetrics +-------------------------------- + +.. autoclass:: AICorruptMetrics + :members: __init__, score + + diff --git a/main/_sources/api_doc/corrupt/index.rst.txt b/main/_sources/api_doc/corrupt/index.rst.txt new file mode 100644 index 0000000..3da1dfe --- /dev/null +++ b/main/_sources/api_doc/corrupt/index.rst.txt @@ -0,0 +1,12 @@ +sdeval.corrupt +===================== + +.. currentmodule:: sdeval.corrupt + +.. automodule:: sdeval.corrupt + + +.. toctree:: + :maxdepth: 3 + + aicorrupt diff --git a/main/_sources/index.rst.txt b/main/_sources/index.rst.txt index a2ccbdb..a71f1aa 100644 --- a/main/_sources/index.rst.txt +++ b/main/_sources/index.rst.txt @@ -29,6 +29,7 @@ configuration file's structure and their versions. :caption: API Documentation api_doc/config/index + api_doc/corrupt/index api_doc/fidelity/index api_doc/utils/index diff --git a/main/_sources/information/environment.result.ipynb.txt b/main/_sources/information/environment.result.ipynb.txt index b12fb7e..55fa708 100644 --- a/main/_sources/information/environment.result.ipynb.txt +++ b/main/_sources/information/environment.result.ipynb.txt @@ -29,10 +29,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2023-11-15T14:39:27.714891Z", - "iopub.status.busy": "2023-11-15T14:39:27.714338Z", - "iopub.status.idle": "2023-11-15T14:39:28.893554Z", - "shell.execute_reply": "2023-11-15T14:39:28.892732Z" + "iopub.execute_input": "2023-11-15T14:45:23.805530Z", + "iopub.status.busy": "2023-11-15T14:45:23.805339Z", + "iopub.status.idle": "2023-11-15T14:45:25.000513Z", + "shell.execute_reply": "2023-11-15T14:45:24.999739Z" }, "pycharm": { "name": "#%%\n" @@ -47,7 +47,7 @@ "Python: CPython 3.8.18\n", "CPU Brand: AMD EPYC 7763 64-Core Processor\n", "CPU Count: 4\n", - "CPU Freq: 2711.63825 MHz\n", + "CPU Freq: 2870.77275 MHz\n", "Memory Size: 15.607 GiB\n", "Has CUDA: No\n" ] diff --git a/main/api_doc/config/index.html b/main/api_doc/config/index.html index 2ae7232..ec2eca6 100644 --- a/main/api_doc/config/index.html +++ b/main/api_doc/config/index.html @@ -105,6 +105,7 @@
  • sdeval.config.meta
+
  • sdeval.corrupt
  • sdeval.fidelity
  • sdeval.utils
  • diff --git a/main/api_doc/config/meta.html b/main/api_doc/config/meta.html index e06ecbd..b1be495 100644 --- a/main/api_doc/config/meta.html +++ b/main/api_doc/config/meta.html @@ -41,7 +41,7 @@ - + @@ -112,6 +112,7 @@ +
  • sdeval.corrupt
  • sdeval.fidelity
  • sdeval.utils
  • @@ -244,7 +245,7 @@

    __AUTHOR_EMAIL__ - + diff --git a/main/api_doc/corrupt/aicorrupt.html b/main/api_doc/corrupt/aicorrupt.html new file mode 100644 index 0000000..8b4f88c --- /dev/null +++ b/main/api_doc/corrupt/aicorrupt.html @@ -0,0 +1,323 @@ + + + + + + + + + + + + sdeval.corrupt.aicorrupt — sdeval 0.0.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + + + + + +
    + +
    + + + + + + + + + + + + + + + + + +
    + + + + +
    +
    +
    +
    + + + +
    +

    sdeval.corrupt.aicorrupt

    +
    +
    Overview:

    AI image corrupt evaluation metrics.

    +
    +
    +
    +

    get_ai_corrupted

    +
    +
    +sdeval.corrupt.aicorrupt.get_ai_corrupted(image: Union[str, os.PathLike, bytes, bytearray, BinaryIO, PIL.Image.Image], model_name: str = 'caformer_s36_v0_focal') → Mapping[str, float][source]
    +

    Get AI image corrupted detection scores for an image.

    +

    This function calculates AI image corrupted detection scores for a given image using the specified model.

    +
    +
    Parameters:
    +
      +
    • image (ImageTyping) – The input image.

    • +
    • model_name (str) – The name of the AI image corrupted detection model. Default is ‘caformer_s36_v0_focal’.

    • +
    +
    +
    Returns:
    +

    A dictionary containing the corrupted score.

    +
    +
    Return type:
    +

    Mapping[str, float]

    +
    +
    +
    + +
    +
    +

    AICorruptMetrics

    +
    +
    +class sdeval.corrupt.aicorrupt.AICorruptMetrics(model_name: str = 'caformer_s36_v0_focal', silent: bool = False, tqdm_desc: str = None)[source]
    +

    Class for calculating an AI image corruptness score.

    +

    The AICorruptMetrics class allows you to calculate an AI image corruptness score using the AI image corrupted detection model.

    +
    +
    Parameters:
    +
      +
    • model_name (str) – The name of the AI image corrupted detection model. Default is ‘caformer_s36_v0_focal’.

    • +
    • silent (bool) – If True, suppresses progress bars and additional output during calculation.

    • +
    • tqdm_desc (str) – Description for the tqdm progress bar during calculation.

    • +
    +
    +
    +
    +
    +__init__(model_name: str = 'caformer_s36_v0_focal', silent: bool = False, tqdm_desc: str = None)[source]
    +

    Initialize self. See help(type(self)) for accurate signature.

    +
    + +
    +
    +score(images: Union[PIL.Image.Image, str, List[Union[PIL.Image.Image, str]]], silent: bool = None)[source]
    +

    Calculate the AI image corruptness score for a set of images.

    +

    This method calculates the AI image corruptness score for a set of input images using the AI image corrupted detection model.

    +
    +
    Parameters:
    +
      +
    • images (ImagesTyping) – The set of input images for calculating the AI image corruptness score.

    • +
    • silent (bool) – If True, suppresses progress bars and additional output during calculation.

    • +
    +
    +
    Returns:
    +

    The AI image corruptness score.

    +
    +
    Return type:
    +

    float

    +
    +
    +
    + +
    + +
    +
    + + + +
    + +
    + + +
    +
    + +
    + +
    + +
    + + Other Versions + v: main + + +
    +
    +
    Branches
    +
    main
    +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/main/api_doc/corrupt/index.html b/main/api_doc/corrupt/index.html new file mode 100644 index 0000000..fe50b1a --- /dev/null +++ b/main/api_doc/corrupt/index.html @@ -0,0 +1,252 @@ + + + + + + + + + + + + sdeval.corrupt — sdeval 0.0.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + + + + + +
    + +
    + + + + + + + + + + + + + + + + + +
    + + + + +
    +
    +
    +
    + + + +
    +

    sdeval.corrupt

    + +
    + + + +
    + +
    + + +
    +
    + +
    + +
    + +
    + + Other Versions + v: main + + +
    +
    +
    Branches
    +
    main
    +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/main/api_doc/fidelity/ccip.html b/main/api_doc/fidelity/ccip.html index bb4ef59..d4b89e3 100644 --- a/main/api_doc/fidelity/ccip.html +++ b/main/api_doc/fidelity/ccip.html @@ -102,6 +102,7 @@

    API Documentation

    • sdeval.config
    • +
    • sdeval.corrupt
    • sdeval.fidelity
      • sdeval.fidelity.ccip
        • CCIPMetrics
        • diff --git a/main/api_doc/fidelity/index.html b/main/api_doc/fidelity/index.html index 5525bb1..16377ed 100644 --- a/main/api_doc/fidelity/index.html +++ b/main/api_doc/fidelity/index.html @@ -42,7 +42,7 @@ - + @@ -102,6 +102,7 @@

          API Documentation

          • sdeval.config
          • +
          • sdeval.corrupt
          • sdeval.fidelity @@ -201,7 +202,7 @@ - + diff --git a/main/api_doc/utils/images.html b/main/api_doc/utils/images.html index ef3be9b..2eee1b7 100644 --- a/main/api_doc/utils/images.html +++ b/main/api_doc/utils/images.html @@ -101,6 +101,7 @@

            API Documentation

            • sdeval.config
            • +
            • sdeval.corrupt
            • sdeval.fidelity
            • sdeval.utils
              • sdeval.utils.tqdm_
              • diff --git a/main/api_doc/utils/index.html b/main/api_doc/utils/index.html index eaf09bb..77d1ed1 100644 --- a/main/api_doc/utils/index.html +++ b/main/api_doc/utils/index.html @@ -102,6 +102,7 @@

                API Documentation

                • sdeval.config
                • +
                • sdeval.corrupt
                • sdeval.fidelity
                • sdeval.utils
                  • sdeval.utils.tqdm_
                  • diff --git a/main/api_doc/utils/tqdm_.html b/main/api_doc/utils/tqdm_.html index 79a3082..0e741db 100644 --- a/main/api_doc/utils/tqdm_.html +++ b/main/api_doc/utils/tqdm_.html @@ -102,6 +102,7 @@

                    API Documentation

                    • sdeval.config
                    • +
                    • sdeval.corrupt
                    • sdeval.fidelity
                    • sdeval.utils
                      • sdeval.utils.tqdm_
                          diff --git a/main/genindex.html b/main/genindex.html index 80edb9a..dfe592e 100644 --- a/main/genindex.html +++ b/main/genindex.html @@ -101,6 +101,7 @@

                          API Documentation

                          @@ -170,7 +171,9 @@

                          Index

                          _ + | A | C + | G | L | M | S @@ -188,8 +191,12 @@

                          _

                        +

                        A

                        + + +
                        +

                        C

                          @@ -205,6 +220,14 @@

                          C

                        +

                        G

                        + + +
                        +

                        L

                          @@ -223,6 +246,10 @@

                          M

                        • sdeval.config
                        • sdeval.config.meta +
                        • +
                        • sdeval.corrupt +
                        • +
                        • sdeval.corrupt.aicorrupt
                        • sdeval.fidelity
                        • @@ -241,8 +268,12 @@

                          M

                          S

                          + + + + + +
                        • - sdeval.fidelity + sdeval.corrupt
                        • +
                        • + sdeval.corrupt.aicorrupt + +
                        •     sdeval.config.meta
                              + sdeval.corrupt +
                              + sdeval.corrupt.aicorrupt +
                              diff --git a/main/search.html b/main/search.html index 2d1e9b3..d2032e1 100644 --- a/main/search.html +++ b/main/search.html @@ -102,6 +102,7 @@

                          API Documentation

                          diff --git a/main/searchindex.js b/main/searchindex.js index 27861ed..c5b499a 100644 --- a/main/searchindex.js +++ b/main/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["api_doc/config/index","api_doc/config/meta","api_doc/fidelity/ccip","api_doc/fidelity/index","api_doc/utils/images","api_doc/utils/index","api_doc/utils/tqdm_","index","information/environment","information/environment.result","tutorials/installation/index","tutorials/quick_start/index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,nbsphinx:4,sphinx:56},filenames:["api_doc/config/index.rst","api_doc/config/meta.rst","api_doc/fidelity/ccip.rst","api_doc/fidelity/index.rst","api_doc/utils/images.rst","api_doc/utils/index.rst","api_doc/utils/tqdm_.rst","index.rst","information/environment.ipynb","information/environment.result.ipynb","tutorials/installation/index.rst","tutorials/quick_start/index.rst"],objects:{"sdeval.config":{meta:[1,0,0,"-"]},"sdeval.config.meta":{__AUTHOR_EMAIL__:[1,1,1,""],__AUTHOR__:[1,1,1,""],__DESCRIPTION__:[1,1,1,""],__TITLE__:[1,1,1,""],__VERSION__:[1,1,1,""]},"sdeval.fidelity":{ccip:[2,0,0,"-"]},"sdeval.fidelity.ccip":{CCIPMetrics:[2,2,1,""]},"sdeval.fidelity.ccip.CCIPMetrics":{__init__:[2,3,1,""],score:[2,3,1,""]},"sdeval.utils":{images:[4,0,0,"-"],tqdm_:[6,0,0,"-"]},"sdeval.utils.images":{load_images:[4,4,1,""]},"sdeval.utils.tqdm_":{tqdm:[6,4,1,""]},sdeval:{config:[0,0,0,"-"],fidelity:[3,0,0,"-"],utils:[5,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","data","Python data"],"2":["py","class","Python class"],"3":["py","method","Python method"],"4":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:data","2":"py:class","3":"py:method","4":"py:function"},terms:{"1015":[8,9],"2709":8,"2711":9,"3277500000004":8,"607":[8,9],"63825":9,"7763":[8,9],"class":2,"default":2,"float":2,"function":[4,6],"import":[8,9,10],"return":[2,4,6],"short":1,"true":[2,6],Has:[8,9],The:[2,10],Yes:[8,9],__author__:[0,10],__author_email__:0,__description__:[0,10],__init__:2,__main__:10,__name__:10,__title__:[0,10],__version__:[0,10],accur:2,action:[8,9],addit:[2,6],allow:[2,6],also:10,amd:[8,9],anim:2,api:7,arg:6,argument:6,author:1,automat:[8,9],azur:[8,9],bar:[2,6],base:2,behavior:6,below:10,between:2,bool:[2,6],brand:[8,9],brand_raw:[8,9],caform:2,calcul:2,can:[7,10],ccip:[3,7],ccipmetr:3,charact:2,check:10,chosen:2,com:10,combin:4,command:10,config:[7,10],configur:7,consist:2,content:[2,6],core:[8,9],count:[8,9],cpu:[8,9],cpu_count:[8,9],cpu_freq:[8,9],cpuinfo:[8,9],cpython:[8,9],cuda:[8,9],current:[8,9,10],data:[8,9],dataset:2,deepgh:10,deploi:[8,9],descript:[1,2],develop:10,differ:[8,9],diffus:10,directori:4,displai:6,document:[8,9,10],dure:2,els:[8,9],email:1,enhanc:6,environ:7,epyc:[8,9],evalu:[3,10],execut:[8,9],extract:2,fals:[2,6],faq:11,featur:2,fidel:7,file:[4,7],follow:10,freq:[8,9],from:[4,8,9,10],get_cpu_info:[8,9],gib:[8,9],git:10,github:[8,9,10],glibc2:[8,9],hbutil:[8,9],help:2,here:[8,9],host:10,html:10,http:10,imag:[2,5,7],imagestyp:[2,4],imgutil:2,includ:[1,4],index:10,inform:[1,2,7],initi:2,input:2,instal:7,keyword:6,kwarg:6,like:10,linux:[8,9],list:[2,4],load:4,load_imag:5,local:[8,9],mai:[8,9],main:10,maintain:10,manag:7,mean:10,memori:[8,9],meta:[0,7,10],method:2,metric:[2,3],mhz:[8,9],model:[2,10],modifi:6,modul:7,more:2,multipl:4,narugo1992:10,newest:10,none:2,note:[8,9],nvidia:[8,9],object:4,option:[2,6],out:10,output:[2,6,10],overview:[1,2,3],packag:1,pairwis:2,paramet:[2,4,6],pars:7,pass:6,path:4,perform:[8,9],pil:[2,4],pip:10,platform:[8,9],pleas:[8,9],posit:6,precis:[8,9],print:[8,9,10],processor:[8,9],progress:[2,6],project:1,provid:2,prune:2,psutil:[8,9],pypi:10,python:[8,9,10],python_implement:[8,9],python_vers:[8,9],quick:7,randaug:2,recurs:4,refer:2,requir:10,run:7,scale:[8,9],score:2,script:10,sdeval:10,see:2,self:2,set:2,setup:1,should:[1,10],shutil:[8,9],signatur:2,silenc:6,silent:[2,6],similar:2,simpli:10,size:[8,9],size_to_bytes_str:[8,9],smi:[8,9],some:[8,9],sourc:[2,4,6],stabl:10,start:7,std:6,still:10,str:[2,4],structur:7,success:10,support:4,suppress:2,therefor:[8,9],thi:[1,2,4,6,8,9],threshold:2,through:10,titl:1,total:[8,9],tqdm:[2,5],tqdm_:[5,7],tqdm_desc:2,train:[2,3,10],tutori:7,type:[2,4,6],under:10,union:[2,4],use:2,used:2,using:2,util:7,varieti:4,variou:4,version:[1,6,7,10],virtual_memori:[8,9],which:[7,8,9,10],x86_64:[8,9],you:[2,10],your:[8,9,10]},titles:["sdeval.config","sdeval.config.meta","sdeval.fidelity.ccip","sdeval.fidelity","sdeval.utils.images","sdeval.utils","sdeval.utils.tqdm_","Welcome to sdeval\u2019s Documentation","Run Environment Information","Run Environment Information","Installation","Quick Start"],titleterms:{__author__:1,__author_email__:1,__description__:1,__title__:1,__version__:1,ccip:2,ccipmetr:2,config:[0,1],document:7,environ:[8,9],fidel:[2,3],imag:4,inform:[8,9],instal:10,load_imag:4,meta:1,overview:7,quick:11,run:[8,9],sdeval:[0,1,2,3,4,5,6,7],start:11,tqdm:6,tqdm_:6,util:[4,5,6],welcom:7}}) \ No newline at end of file +Search.setIndex({docnames:["api_doc/config/index","api_doc/config/meta","api_doc/corrupt/aicorrupt","api_doc/corrupt/index","api_doc/fidelity/ccip","api_doc/fidelity/index","api_doc/utils/images","api_doc/utils/index","api_doc/utils/tqdm_","index","information/environment","information/environment.result","tutorials/installation/index","tutorials/quick_start/index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,nbsphinx:4,sphinx:56},filenames:["api_doc/config/index.rst","api_doc/config/meta.rst","api_doc/corrupt/aicorrupt.rst","api_doc/corrupt/index.rst","api_doc/fidelity/ccip.rst","api_doc/fidelity/index.rst","api_doc/utils/images.rst","api_doc/utils/index.rst","api_doc/utils/tqdm_.rst","index.rst","information/environment.ipynb","information/environment.result.ipynb","tutorials/installation/index.rst","tutorials/quick_start/index.rst"],objects:{"sdeval.config":{meta:[1,0,0,"-"]},"sdeval.config.meta":{__AUTHOR_EMAIL__:[1,1,1,""],__AUTHOR__:[1,1,1,""],__DESCRIPTION__:[1,1,1,""],__TITLE__:[1,1,1,""],__VERSION__:[1,1,1,""]},"sdeval.corrupt":{aicorrupt:[2,0,0,"-"]},"sdeval.corrupt.aicorrupt":{AICorruptMetrics:[2,2,1,""],get_ai_corrupted:[2,4,1,""]},"sdeval.corrupt.aicorrupt.AICorruptMetrics":{__init__:[2,3,1,""],score:[2,3,1,""]},"sdeval.fidelity":{ccip:[4,0,0,"-"]},"sdeval.fidelity.ccip":{CCIPMetrics:[4,2,1,""]},"sdeval.fidelity.ccip.CCIPMetrics":{__init__:[4,3,1,""],score:[4,3,1,""]},"sdeval.utils":{images:[6,0,0,"-"],tqdm_:[8,0,0,"-"]},"sdeval.utils.images":{load_images:[6,4,1,""]},"sdeval.utils.tqdm_":{tqdm:[8,4,1,""]},sdeval:{config:[0,0,0,"-"],corrupt:[3,0,0,"-"],fidelity:[5,0,0,"-"],utils:[7,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","data","Python data"],"2":["py","class","Python class"],"3":["py","method","Python method"],"4":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:data","2":"py:class","3":"py:method","4":"py:function"},terms:{"1015":[10,11],"16475":10,"2870":11,"2947":10,"607":[10,11],"77275":11,"7763":[10,11],"byte":2,"class":[2,4],"default":[2,4],"float":[2,4],"function":[2,6,8],"import":[10,11,12],"return":[2,4,6,8],"short":1,"true":[2,4,8],Has:[10,11],The:[2,4,12],Yes:[10,11],__author__:[0,12],__author_email__:0,__description__:[0,12],__init__:[2,4],__main__:12,__name__:12,__title__:[0,12],__version__:[0,12],accur:[2,4],action:[10,11],addit:[2,4,8],aicorrupt:[3,9],aicorruptmetr:3,allow:[2,4,8],also:12,amd:[10,11],anim:4,api:9,arg:8,argument:8,author:1,automat:[10,11],azur:[10,11],bar:[2,4,8],base:4,behavior:8,below:12,between:4,binaryio:2,bool:[2,4,8],brand:[10,11],brand_raw:[10,11],bytearrai:2,caform:4,caformer_s36_v0_foc:2,calcul:[2,4],can:[9,12],ccip:[5,9],ccipmetr:5,charact:4,check:12,chosen:4,com:12,combin:6,command:12,config:[9,12],configur:9,consist:4,contain:2,content:[4,8],core:[10,11],corrupt:9,count:[10,11],cpu:[10,11],cpu_count:[10,11],cpu_freq:[10,11],cpuinfo:[10,11],cpython:[10,11],cuda:[10,11],current:[10,11,12],data:[10,11],dataset:4,deepgh:12,deploi:[10,11],descript:[1,2,4],detect:2,develop:12,dictionari:2,differ:[10,11],diffus:12,directori:6,displai:8,document:[10,11,12],dure:[2,4],els:[10,11],email:1,enhanc:8,environ:9,epyc:[10,11],evalu:[2,5,12],execut:[10,11],extract:4,fals:[2,4,8],faq:13,featur:4,fidel:9,file:[6,9],follow:12,freq:[10,11],from:[6,10,11,12],get:2,get_ai_corrupt:3,get_cpu_info:[10,11],gib:[10,11],git:12,github:[10,11,12],given:2,glibc2:[10,11],hbutil:[10,11],help:[2,4],here:[10,11],host:12,html:12,http:12,imag:[2,4,7,9],imagestyp:[2,4,6],imagetyp:2,imgutil:4,includ:[1,6],index:12,inform:[1,4,9],initi:[2,4],input:[2,4],instal:9,keyword:8,kwarg:8,like:12,linux:[10,11],list:[2,4,6],load:6,load_imag:7,local:[10,11],mai:[10,11],main:12,maintain:12,manag:9,map:2,mean:12,memori:[10,11],meta:[0,9,12],method:[2,4],metric:[2,4,5],mhz:[10,11],model:[2,4,12],model_nam:2,modifi:8,modul:9,more:4,multipl:6,name:2,narugo1992:12,newest:12,none:[2,4],note:[10,11],nvidia:[10,11],object:6,option:[4,8],out:12,output:[2,4,8,12],overview:[1,2,4,5],packag:1,pairwis:4,paramet:[2,4,6,8],pars:9,pass:8,path:6,pathlik:2,perform:[10,11],pil:[2,4,6],pip:12,platform:[10,11],pleas:[10,11],posit:8,precis:[10,11],print:[10,11,12],processor:[10,11],progress:[2,4,8],project:1,provid:4,prune:4,psutil:[10,11],pypi:12,python:[10,11,12],python_implement:[10,11],python_vers:[10,11],quick:9,randaug:4,recurs:6,refer:4,requir:12,run:9,scale:[10,11],score:[2,4],script:12,sdeval:12,see:[2,4],self:[2,4],set:[2,4],setup:1,should:[1,12],shutil:[10,11],signatur:[2,4],silenc:8,silent:[2,4,8],similar:4,simpli:12,size:[10,11],size_to_bytes_str:[10,11],smi:[10,11],some:[10,11],sourc:[2,4,6,8],specifi:2,stabl:12,start:9,std:8,still:12,str:[2,4,6],structur:9,success:12,support:6,suppress:[2,4],therefor:[10,11],thi:[1,2,4,6,8,10,11],threshold:4,through:12,titl:1,total:[10,11],tqdm:[2,4,7],tqdm_:[7,9],tqdm_desc:[2,4],train:[4,5,12],tutori:9,type:[2,4,6,8],under:12,union:[2,4,6],use:4,used:4,using:[2,4],util:9,varieti:6,variou:6,version:[1,8,9,12],virtual_memori:[10,11],which:[9,10,11,12],x86_64:[10,11],you:[2,4,12],your:[10,11,12]},titles:["sdeval.config","sdeval.config.meta","sdeval.corrupt.aicorrupt","sdeval.corrupt","sdeval.fidelity.ccip","sdeval.fidelity","sdeval.utils.images","sdeval.utils","sdeval.utils.tqdm_","Welcome to sdeval\u2019s Documentation","Run Environment Information","Run Environment Information","Installation","Quick Start"],titleterms:{__author__:1,__author_email__:1,__description__:1,__title__:1,__version__:1,aicorrupt:2,aicorruptmetr:2,ccip:4,ccipmetr:4,config:[0,1],corrupt:[2,3],document:9,environ:[10,11],fidel:[4,5],get_ai_corrupt:2,imag:6,inform:[10,11],instal:12,load_imag:6,meta:1,overview:9,quick:13,run:[10,11],sdeval:[0,1,2,3,4,5,6,7,8,9],start:13,tqdm:8,tqdm_:8,util:[6,7,8],welcom:9}}) \ No newline at end of file diff --git a/main/tutorials/installation/index.html b/main/tutorials/installation/index.html index 7b677cf..5edea1f 100644 --- a/main/tutorials/installation/index.html +++ b/main/tutorials/installation/index.html @@ -104,6 +104,7 @@

                          API Documentation

                          diff --git a/main/tutorials/quick_start/index.html b/main/tutorials/quick_start/index.html index 15d19c0..94d0169 100644 --- a/main/tutorials/quick_start/index.html +++ b/main/tutorials/quick_start/index.html @@ -104,6 +104,7 @@

                          API Documentation