matrix-spam-ml

git clone git://archive.git.mtrnord.blog/MTRNord/matrix-spam-ml.git
Log | Files | Refs | Submodules | README | LICENSE

commit 15853a7c0ae15be927dc9c3ac74acfa6cc3f9895
parent 56bc99b8341638ce5b7dd080cd8923ace8990ab6
Author: MTRNord <mtrnord1@gmail.com>
Date:   Sun, 25 Sep 2022 22:18:22 +0200

Add hypervariables

Diffstat:
M.gitignore | 6++++--
Dlogs/scalars/20220925-011531/train/events.out.tfevents.1664061472.DESKTOP-GS9C68O.19803.0.v2 | 0
Dlogs/scalars/20220925-011531/train/events.out.tfevents.1664061703.DESKTOP-GS9C68O.19803.2.v2 | 0
Dlogs/scalars/20220925-011531/validation/events.out.tfevents.1664061473.DESKTOP-GS9C68O.19803.1.v2 | 0
Dlogs/scalars/20220925-011531/validation/events.out.tfevents.1664061705.DESKTOP-GS9C68O.19803.3.v2 | 0
Dlogs/scalars/20220925-012755/train/events.out.tfevents.1664062075.DESKTOP-GS9C68O.23744.0.v2 | 0
Dlogs/scalars/20220925-012755/validation/events.out.tfevents.1664062077.DESKTOP-GS9C68O.23744.1.v2 | 0
Dlogs/scalars/20220925-013756/train/events.out.tfevents.1664062676.DESKTOP-GS9C68O.25525.0.v2 | 0
Dlogs/scalars/20220925-013756/validation/events.out.tfevents.1664062678.DESKTOP-GS9C68O.25525.1.v2 | 0
Dlogs/scalars/20220925-014650/train/events.out.tfevents.1664063210.DESKTOP-GS9C68O.27170.0.v2 | 0
Dlogs/scalars/20220925-014650/validation/events.out.tfevents.1664063213.DESKTOP-GS9C68O.27170.1.v2 | 0
Dlogs/scalars/20220925-014739/train/events.out.tfevents.1664063259.DESKTOP-GS9C68O.27487.0.v2 | 0
Dlogs/scalars/20220925-014739/validation/events.out.tfevents.1664063261.DESKTOP-GS9C68O.27487.1.v2 | 0
Dlogs/scalars/20220925-015227/train/events.out.tfevents.1664063547.DESKTOP-GS9C68O.29065.0.v2 | 0
Dlogs/scalars/20220925-015227/validation/events.out.tfevents.1664063549.DESKTOP-GS9C68O.29065.1.v2 | 0
Dlogs/scalars/20220925-015845/train/events.out.tfevents.1664063925.DESKTOP-GS9C68O.30694.0.v2 | 0
Dlogs/scalars/20220925-015845/validation/events.out.tfevents.1664063928.DESKTOP-GS9C68O.30694.1.v2 | 0
Dlogs/scalars/20220925-020803/train/events.out.tfevents.1664064483.DESKTOP-GS9C68O.32417.0.v2 | 0
Dlogs/scalars/20220925-020803/validation/events.out.tfevents.1664064486.DESKTOP-GS9C68O.32417.1.v2 | 0
Dlogs/scalars/20220925-021300/train/events.out.tfevents.1664064781.DESKTOP-GS9C68O.1913.0.v2 | 0
Dlogs/scalars/20220925-021300/validation/events.out.tfevents.1664064783.DESKTOP-GS9C68O.1913.1.v2 | 0
Dlogs/scalars/20220925-022112/train/events.out.tfevents.1664065272.DESKTOP-GS9C68O.4056.0.v2 | 0
Dlogs/scalars/20220925-022112/validation/events.out.tfevents.1664065275.DESKTOP-GS9C68O.4056.1.v2 | 0
Dlogs/scalars/20220925-022749/train/events.out.tfevents.1664065669.DESKTOP-GS9C68O.5933.0.v2 | 0
Dlogs/scalars/20220925-022749/train/events.out.tfevents.1664066664.DESKTOP-GS9C68O.5933.2.v2 | 0
Dlogs/scalars/20220925-022749/validation/events.out.tfevents.1664065671.DESKTOP-GS9C68O.5933.1.v2 | 0
Dlogs/scalars/20220925-022749/validation/events.out.tfevents.1664066665.DESKTOP-GS9C68O.5933.3.v2 | 0
Dlogs/scalars/20220925-025019/train/events.out.tfevents.1664067019.DESKTOP-GS9C68O.14034.0.v2 | 0
Dlogs/scalars/20220925-025019/validation/events.out.tfevents.1664067021.DESKTOP-GS9C68O.14034.1.v2 | 0
Dlogs/scalars/20220925-030011/train/events.out.tfevents.1664067611.DESKTOP-GS9C68O.15449.0.v2 | 0
Dlogs/scalars/20220925-030011/validation/events.out.tfevents.1664067614.DESKTOP-GS9C68O.15449.1.v2 | 0
Dlogs/scalars/20220925-030618/train/events.out.tfevents.1664067978.DESKTOP-GS9C68O.16442.0.v2 | 0
Dlogs/scalars/20220925-030618/validation/events.out.tfevents.1664067980.DESKTOP-GS9C68O.16442.1.v2 | 0
Dlogs/scalars/20220925-031954/train/events.out.tfevents.1664068794.DESKTOP-GS9C68O.18783.0.v2 | 0
Dlogs/scalars/20220925-031954/validation/events.out.tfevents.1664068797.DESKTOP-GS9C68O.18783.1.v2 | 0
Dlogs/scalars/20220925-032223/train/events.out.tfevents.1664068943.DESKTOP-GS9C68O.19650.0.v2 | 0
Dlogs/scalars/20220925-032223/validation/events.out.tfevents.1664068946.DESKTOP-GS9C68O.19650.1.v2 | 0
Dlogs/scalars/20220925-032744/train/events.out.tfevents.1664069264.DESKTOP-GS9C68O.21661.0.v2 | 0
Dlogs/scalars/20220925-032744/validation/events.out.tfevents.1664069267.DESKTOP-GS9C68O.21661.1.v2 | 0
Dlogs/scalars/20220925-033722/train/events.out.tfevents.1664069842.DESKTOP-GS9C68O.23633.0.v2 | 0
Dlogs/scalars/20220925-033722/validation/events.out.tfevents.1664069844.DESKTOP-GS9C68O.23633.1.v2 | 0
Dlogs/scalars/20220925-033901/train/events.out.tfevents.1664069941.DESKTOP-GS9C68O.24264.0.v2 | 0
Dlogs/scalars/20220925-033901/validation/events.out.tfevents.1664069943.DESKTOP-GS9C68O.24264.1.v2 | 0
Dlogs/scalars/20220925-035155/train/events.out.tfevents.1664070715.DESKTOP-GS9C68O.24016.0.v2 | 0
Dlogs/scalars/20220925-035155/validation/events.out.tfevents.1664070718.DESKTOP-GS9C68O.24016.1.v2 | 0
Dlogs/scalars/20220925-131313/train/events.out.tfevents.1664104394.DESKTOP-GS9C68O.14144.0.v2 | 0
Dlogs/scalars/20220925-131313/validation/events.out.tfevents.1664104399.DESKTOP-GS9C68O.14144.1.v2 | 0
Dlogs/scalars/20220925-140854/train/events.out.tfevents.1664107734.DESKTOP-GS9C68O.16997.0.v2 | 0
Dlogs/scalars/20220925-140854/validation/events.out.tfevents.1664107738.DESKTOP-GS9C68O.16997.1.v2 | 0
Dlogs/scalars/20220925-140955/train/events.out.tfevents.1664107795.DESKTOP-GS9C68O.17450.0.v2 | 0
Dlogs/scalars/20220925-140955/validation/events.out.tfevents.1664107798.DESKTOP-GS9C68O.17450.1.v2 | 0
Dlogs/scalars/20220925-141424/train/events.out.tfevents.1664108064.DESKTOP-GS9C68O.19108.0.v2 | 0
Dlogs/scalars/20220925-141424/train/events.out.tfevents.1664108360.DESKTOP-GS9C68O.19108.2.v2 | 0
Dlogs/scalars/20220925-141424/validation/events.out.tfevents.1664108067.DESKTOP-GS9C68O.19108.1.v2 | 0
Dlogs/scalars/20220925-141424/validation/events.out.tfevents.1664108361.DESKTOP-GS9C68O.19108.3.v2 | 0
Dlogs/scalars/20220925-143113/train/events.out.tfevents.1664109073.DESKTOP-GS9C68O.23359.0.v2 | 0
Dlogs/scalars/20220925-143113/validation/events.out.tfevents.1664109076.DESKTOP-GS9C68O.23359.1.v2 | 0
Dlogs/scalars/20220925-143834/train/events.out.tfevents.1664109514.DESKTOP-GS9C68O.25901.0.v2 | 0
Dlogs/scalars/20220925-143834/validation/events.out.tfevents.1664109516.DESKTOP-GS9C68O.25901.1.v2 | 0
Dlogs/scalars/20220925-145444/train/events.out.tfevents.1664110484.DESKTOP-GS9C68O.30535.0.v2 | 0
Dlogs/scalars/20220925-145444/validation/events.out.tfevents.1664110487.DESKTOP-GS9C68O.30535.1.v2 | 0
Dlogs/scalars/20220925-145812/train/events.out.tfevents.1664110692.DESKTOP-GS9C68O.31078.0.v2 | 0
Dlogs/scalars/20220925-145812/validation/events.out.tfevents.1664110694.DESKTOP-GS9C68O.31078.1.v2 | 0
Dlogs/scalars/20220925-152101/train/events.out.tfevents.1664112061.DESKTOP-GS9C68O.32341.0.v2 | 0
Dlogs/scalars/20220925-152101/validation/events.out.tfevents.1664112064.DESKTOP-GS9C68O.32341.1.v2 | 0
Dlogs/scalars/20220925-152710/train/events.out.tfevents.1664112431.DESKTOP-GS9C68O.2214.0.v2 | 0
Dlogs/scalars/20220925-152710/validation/events.out.tfevents.1664112433.DESKTOP-GS9C68O.2214.1.v2 | 0
Dlogs/scalars/20220925-152945/train/events.out.tfevents.1664112585.DESKTOP-GS9C68O.3277.0.v2 | 0
Dlogs/scalars/20220925-152945/validation/events.out.tfevents.1664112587.DESKTOP-GS9C68O.3277.1.v2 | 0
Dlogs/scalars/20220925-153730/train/events.out.tfevents.1664113050.DESKTOP-GS9C68O.5066.0.v2 | 0
Dlogs/scalars/20220925-153730/validation/events.out.tfevents.1664113052.DESKTOP-GS9C68O.5066.1.v2 | 0
Dlogs/scalars/20220925-153859/train/events.out.tfevents.1664113139.DESKTOP-GS9C68O.5507.0.v2 | 0
Dlogs/scalars/20220925-153859/validation/events.out.tfevents.1664113141.DESKTOP-GS9C68O.5507.1.v2 | 0
Dlogs/scalars/20220925-154101/train/events.out.tfevents.1664113261.DESKTOP-GS9C68O.6032.0.v2 | 0
Dlogs/scalars/20220925-154101/validation/events.out.tfevents.1664113263.DESKTOP-GS9C68O.6032.1.v2 | 0
Dlogs/scalars/20220925-154237/train/events.out.tfevents.1664113358.DESKTOP-GS9C68O.6696.0.v2 | 0
Dlogs/scalars/20220925-154237/validation/events.out.tfevents.1664113360.DESKTOP-GS9C68O.6696.1.v2 | 0
Dlogs/scalars/20220925-154904/train/events.out.tfevents.1664113744.DESKTOP-GS9C68O.8421.0.v2 | 0
Dlogs/scalars/20220925-154904/validation/events.out.tfevents.1664113746.DESKTOP-GS9C68O.8421.1.v2 | 0
Dlogs/scalars/20220925-155349/train/events.out.tfevents.1664114029.DESKTOP-GS9C68O.9962.0.v2 | 0
Dlogs/scalars/20220925-155349/validation/events.out.tfevents.1664114031.DESKTOP-GS9C68O.9962.1.v2 | 0
Dlogs/scalars/20220925-155531/train/events.out.tfevents.1664114131.DESKTOP-GS9C68O.10778.0.v2 | 0
Dlogs/scalars/20220925-155531/validation/events.out.tfevents.1664114133.DESKTOP-GS9C68O.10778.1.v2 | 0
Dlogs/scalars/20220925-155633/train/events.out.tfevents.1664114193.DESKTOP-GS9C68O.11193.0.v2 | 0
Dlogs/scalars/20220925-155633/validation/events.out.tfevents.1664114195.DESKTOP-GS9C68O.11193.1.v2 | 0
Dlogs/scalars/20220925-164347/train/events.out.tfevents.1664117027.DESKTOP-GS9C68O.13412.0.v2 | 0
Dlogs/scalars/20220925-164347/validation/events.out.tfevents.1664117032.DESKTOP-GS9C68O.13412.1.v2 | 0
Alogs/scalars/20220925-211043/train/events.out.tfevents.1664134197.DESKTOP-GS9C68O.31598.762.v2 | 0
Alogs/scalars/20220925-211043/train/events.out.tfevents.1664134384.DESKTOP-GS9C68O.31598.764.v2 | 0
Alogs/scalars/20220925-211043/validation/events.out.tfevents.1664134198.DESKTOP-GS9C68O.31598.763.v2 | 0
Alogs/scalars/20220925-211043/validation/events.out.tfevents.1664134385.DESKTOP-GS9C68O.31598.765.v2 | 0
Mmodel.png | 0
Amodels/spam_keras_1664119406.7470543/keras_metadata.pb | 3+++
Amodels/spam_keras_1664119406.7470543/saved_model.pb | 3+++
Amodels/spam_keras_1664119406.7470543/variables/variables.data-00000-of-00001 | 3+++
Amodels/spam_keras_1664119406.7470543/variables/variables.index | 3+++
Amodels/spam_keras_1664120470.356158/keras_metadata.pb | 3+++
Amodels/spam_keras_1664120470.356158/saved_model.pb | 3+++
Amodels/spam_keras_1664120470.356158/variables/variables.data-00000-of-00001 | 3+++
Amodels/spam_keras_1664120470.356158/variables/variables.index | 3+++
Amodels/spam_keras_1664120844.35066/keras_metadata.pb | 3+++
Amodels/spam_keras_1664120844.35066/saved_model.pb | 3+++
Amodels/spam_keras_1664120844.35066/variables/variables.data-00000-of-00001 | 3+++
Amodels/spam_keras_1664120844.35066/variables/variables.index | 3+++
Amodels/spam_keras_1664121491.4855378/keras_metadata.pb | 3+++
Amodels/spam_keras_1664121491.4855378/saved_model.pb | 3+++
Amodels/spam_keras_1664121491.4855378/variables/variables.data-00000-of-00001 | 3+++
Amodels/spam_keras_1664121491.4855378/variables/variables.index | 3+++
Amodels/spam_keras_1664121989.1880333/keras_metadata.pb | 3+++
Amodels/spam_keras_1664121989.1880333/saved_model.pb | 3+++
Amodels/spam_keras_1664121989.1880333/variables/variables.data-00000-of-00001 | 3+++
Amodels/spam_keras_1664121989.1880333/variables/variables.index | 3+++
Amodels/spam_keras_1664126943.6115348/keras_metadata.pb | 3+++
Amodels/spam_keras_1664126943.6115348/saved_model.pb | 3+++
Amodels/spam_keras_1664126943.6115348/variables/variables.data-00000-of-00001 | 3+++
Amodels/spam_keras_1664126943.6115348/variables/variables.index | 3+++
Amodels/spam_keras_1664127829.0862195/keras_metadata.pb | 3+++
Amodels/spam_keras_1664127829.0862195/saved_model.pb | 3+++
Amodels/spam_keras_1664127829.0862195/variables/variables.data-00000-of-00001 | 3+++
Amodels/spam_keras_1664127829.0862195/variables/variables.index | 3+++
Amodels/spam_keras_1664128186.1492417/keras_metadata.pb | 3+++
Amodels/spam_keras_1664128186.1492417/saved_model.pb | 3+++
Amodels/spam_keras_1664128186.1492417/variables/variables.data-00000-of-00001 | 3+++
Amodels/spam_keras_1664128186.1492417/variables/variables.index | 3+++
Amodels/spam_keras_1664128756.400426/keras_metadata.pb | 3+++
Amodels/spam_keras_1664128756.400426/saved_model.pb | 3+++
Amodels/spam_keras_1664128756.400426/variables/variables.data-00000-of-00001 | 3+++
Amodels/spam_keras_1664128756.400426/variables/variables.index | 3+++
Amodels/spam_keras_1664129333.9655871/keras_metadata.pb | 3+++
Amodels/spam_keras_1664129333.9655871/saved_model.pb | 3+++
Amodels/spam_keras_1664129333.9655871/variables/variables.data-00000-of-00001 | 3+++
Amodels/spam_keras_1664129333.9655871/variables/variables.index | 3+++
Amodels/spam_keras_1664129613.5254984/keras_metadata.pb | 3+++
Amodels/spam_keras_1664129613.5254984/saved_model.pb | 3+++
Amodels/spam_keras_1664129613.5254984/variables/variables.data-00000-of-00001 | 3+++
Amodels/spam_keras_1664129613.5254984/variables/variables.index | 3+++
Amodels/spam_keras_1664129913.3062747/keras_metadata.pb | 3+++
Amodels/spam_keras_1664129913.3062747/saved_model.pb | 3+++
Amodels/spam_keras_1664129913.3062747/variables/variables.data-00000-of-00001 | 3+++
Amodels/spam_keras_1664129913.3062747/variables/variables.index | 3+++
Amodels/spam_keras_1664130206.8331552/keras_metadata.pb | 3+++
Amodels/spam_keras_1664130206.8331552/saved_model.pb | 3+++
Amodels/spam_keras_1664130206.8331552/variables/variables.data-00000-of-00001 | 3+++
Amodels/spam_keras_1664130206.8331552/variables/variables.index | 3+++
Amodels/spam_keras_1664130750.0237675/keras_metadata.pb | 3+++
Amodels/spam_keras_1664130750.0237675/saved_model.pb | 3+++
Amodels/spam_keras_1664130750.0237675/variables/variables.data-00000-of-00001 | 3+++
Amodels/spam_keras_1664130750.0237675/variables/variables.index | 3+++
Amodels/spam_keras_1664131195.3111334/keras_metadata.pb | 3+++
Amodels/spam_keras_1664131195.3111334/saved_model.pb | 3+++
Amodels/spam_keras_1664131195.3111334/variables/variables.data-00000-of-00001 | 3+++
Amodels/spam_keras_1664131195.3111334/variables/variables.index | 3+++
Amodels/spam_keras_1664131718.231786/keras_metadata.pb | 3+++
Amodels/spam_keras_1664131718.231786/saved_model.pb | 3+++
Amodels/spam_keras_1664131718.231786/variables/variables.data-00000-of-00001 | 3+++
Amodels/spam_keras_1664131718.231786/variables/variables.index | 3+++
Amodels/spam_keras_1664131806.6781664/keras_metadata.pb | 3+++
Amodels/spam_keras_1664131806.6781664/saved_model.pb | 3+++
Amodels/spam_keras_1664131806.6781664/variables/variables.data-00000-of-00001 | 3+++
Amodels/spam_keras_1664131806.6781664/variables/variables.index | 3+++
Amodels/spam_keras_1664132145.5040135/keras_metadata.pb | 3+++
Amodels/spam_keras_1664132145.5040135/saved_model.pb | 3+++
Amodels/spam_keras_1664132145.5040135/variables/variables.data-00000-of-00001 | 3+++
Amodels/spam_keras_1664132145.5040135/variables/variables.index | 3+++
Amodels/spam_keras_1664134405.3171766/keras_metadata.pb | 3+++
Amodels/spam_keras_1664134405.3171766/saved_model.pb | 3+++
Amodels/spam_keras_1664134405.3171766/variables/variables.data-00000-of-00001 | 3+++
Amodels/spam_keras_1664134405.3171766/variables/variables.index | 3+++
Mspam-keras.ipynb | 431+++++++++++++++++++++++++++++++------------------------------------------------
169 files changed, 403 insertions(+), 262 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -1 +1,3 @@ -/training_checkpoints -\ No newline at end of file +/training_checkpoints +/hyper_tuning +/hypertuner_logs +\ No newline at end of file diff --git a/logs/scalars/20220925-011531/train/events.out.tfevents.1664061472.DESKTOP-GS9C68O.19803.0.v2 b/logs/scalars/20220925-011531/train/events.out.tfevents.1664061472.DESKTOP-GS9C68O.19803.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-011531/train/events.out.tfevents.1664061703.DESKTOP-GS9C68O.19803.2.v2 b/logs/scalars/20220925-011531/train/events.out.tfevents.1664061703.DESKTOP-GS9C68O.19803.2.v2 Binary files differ. diff --git a/logs/scalars/20220925-011531/validation/events.out.tfevents.1664061473.DESKTOP-GS9C68O.19803.1.v2 b/logs/scalars/20220925-011531/validation/events.out.tfevents.1664061473.DESKTOP-GS9C68O.19803.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-011531/validation/events.out.tfevents.1664061705.DESKTOP-GS9C68O.19803.3.v2 b/logs/scalars/20220925-011531/validation/events.out.tfevents.1664061705.DESKTOP-GS9C68O.19803.3.v2 Binary files differ. diff --git a/logs/scalars/20220925-012755/train/events.out.tfevents.1664062075.DESKTOP-GS9C68O.23744.0.v2 b/logs/scalars/20220925-012755/train/events.out.tfevents.1664062075.DESKTOP-GS9C68O.23744.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-012755/validation/events.out.tfevents.1664062077.DESKTOP-GS9C68O.23744.1.v2 b/logs/scalars/20220925-012755/validation/events.out.tfevents.1664062077.DESKTOP-GS9C68O.23744.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-013756/train/events.out.tfevents.1664062676.DESKTOP-GS9C68O.25525.0.v2 b/logs/scalars/20220925-013756/train/events.out.tfevents.1664062676.DESKTOP-GS9C68O.25525.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-013756/validation/events.out.tfevents.1664062678.DESKTOP-GS9C68O.25525.1.v2 b/logs/scalars/20220925-013756/validation/events.out.tfevents.1664062678.DESKTOP-GS9C68O.25525.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-014650/train/events.out.tfevents.1664063210.DESKTOP-GS9C68O.27170.0.v2 b/logs/scalars/20220925-014650/train/events.out.tfevents.1664063210.DESKTOP-GS9C68O.27170.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-014650/validation/events.out.tfevents.1664063213.DESKTOP-GS9C68O.27170.1.v2 b/logs/scalars/20220925-014650/validation/events.out.tfevents.1664063213.DESKTOP-GS9C68O.27170.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-014739/train/events.out.tfevents.1664063259.DESKTOP-GS9C68O.27487.0.v2 b/logs/scalars/20220925-014739/train/events.out.tfevents.1664063259.DESKTOP-GS9C68O.27487.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-014739/validation/events.out.tfevents.1664063261.DESKTOP-GS9C68O.27487.1.v2 b/logs/scalars/20220925-014739/validation/events.out.tfevents.1664063261.DESKTOP-GS9C68O.27487.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-015227/train/events.out.tfevents.1664063547.DESKTOP-GS9C68O.29065.0.v2 b/logs/scalars/20220925-015227/train/events.out.tfevents.1664063547.DESKTOP-GS9C68O.29065.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-015227/validation/events.out.tfevents.1664063549.DESKTOP-GS9C68O.29065.1.v2 b/logs/scalars/20220925-015227/validation/events.out.tfevents.1664063549.DESKTOP-GS9C68O.29065.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-015845/train/events.out.tfevents.1664063925.DESKTOP-GS9C68O.30694.0.v2 b/logs/scalars/20220925-015845/train/events.out.tfevents.1664063925.DESKTOP-GS9C68O.30694.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-015845/validation/events.out.tfevents.1664063928.DESKTOP-GS9C68O.30694.1.v2 b/logs/scalars/20220925-015845/validation/events.out.tfevents.1664063928.DESKTOP-GS9C68O.30694.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-020803/train/events.out.tfevents.1664064483.DESKTOP-GS9C68O.32417.0.v2 b/logs/scalars/20220925-020803/train/events.out.tfevents.1664064483.DESKTOP-GS9C68O.32417.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-020803/validation/events.out.tfevents.1664064486.DESKTOP-GS9C68O.32417.1.v2 b/logs/scalars/20220925-020803/validation/events.out.tfevents.1664064486.DESKTOP-GS9C68O.32417.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-021300/train/events.out.tfevents.1664064781.DESKTOP-GS9C68O.1913.0.v2 b/logs/scalars/20220925-021300/train/events.out.tfevents.1664064781.DESKTOP-GS9C68O.1913.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-021300/validation/events.out.tfevents.1664064783.DESKTOP-GS9C68O.1913.1.v2 b/logs/scalars/20220925-021300/validation/events.out.tfevents.1664064783.DESKTOP-GS9C68O.1913.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-022112/train/events.out.tfevents.1664065272.DESKTOP-GS9C68O.4056.0.v2 b/logs/scalars/20220925-022112/train/events.out.tfevents.1664065272.DESKTOP-GS9C68O.4056.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-022112/validation/events.out.tfevents.1664065275.DESKTOP-GS9C68O.4056.1.v2 b/logs/scalars/20220925-022112/validation/events.out.tfevents.1664065275.DESKTOP-GS9C68O.4056.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-022749/train/events.out.tfevents.1664065669.DESKTOP-GS9C68O.5933.0.v2 b/logs/scalars/20220925-022749/train/events.out.tfevents.1664065669.DESKTOP-GS9C68O.5933.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-022749/train/events.out.tfevents.1664066664.DESKTOP-GS9C68O.5933.2.v2 b/logs/scalars/20220925-022749/train/events.out.tfevents.1664066664.DESKTOP-GS9C68O.5933.2.v2 Binary files differ. diff --git a/logs/scalars/20220925-022749/validation/events.out.tfevents.1664065671.DESKTOP-GS9C68O.5933.1.v2 b/logs/scalars/20220925-022749/validation/events.out.tfevents.1664065671.DESKTOP-GS9C68O.5933.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-022749/validation/events.out.tfevents.1664066665.DESKTOP-GS9C68O.5933.3.v2 b/logs/scalars/20220925-022749/validation/events.out.tfevents.1664066665.DESKTOP-GS9C68O.5933.3.v2 Binary files differ. diff --git a/logs/scalars/20220925-025019/train/events.out.tfevents.1664067019.DESKTOP-GS9C68O.14034.0.v2 b/logs/scalars/20220925-025019/train/events.out.tfevents.1664067019.DESKTOP-GS9C68O.14034.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-025019/validation/events.out.tfevents.1664067021.DESKTOP-GS9C68O.14034.1.v2 b/logs/scalars/20220925-025019/validation/events.out.tfevents.1664067021.DESKTOP-GS9C68O.14034.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-030011/train/events.out.tfevents.1664067611.DESKTOP-GS9C68O.15449.0.v2 b/logs/scalars/20220925-030011/train/events.out.tfevents.1664067611.DESKTOP-GS9C68O.15449.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-030011/validation/events.out.tfevents.1664067614.DESKTOP-GS9C68O.15449.1.v2 b/logs/scalars/20220925-030011/validation/events.out.tfevents.1664067614.DESKTOP-GS9C68O.15449.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-030618/train/events.out.tfevents.1664067978.DESKTOP-GS9C68O.16442.0.v2 b/logs/scalars/20220925-030618/train/events.out.tfevents.1664067978.DESKTOP-GS9C68O.16442.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-030618/validation/events.out.tfevents.1664067980.DESKTOP-GS9C68O.16442.1.v2 b/logs/scalars/20220925-030618/validation/events.out.tfevents.1664067980.DESKTOP-GS9C68O.16442.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-031954/train/events.out.tfevents.1664068794.DESKTOP-GS9C68O.18783.0.v2 b/logs/scalars/20220925-031954/train/events.out.tfevents.1664068794.DESKTOP-GS9C68O.18783.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-031954/validation/events.out.tfevents.1664068797.DESKTOP-GS9C68O.18783.1.v2 b/logs/scalars/20220925-031954/validation/events.out.tfevents.1664068797.DESKTOP-GS9C68O.18783.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-032223/train/events.out.tfevents.1664068943.DESKTOP-GS9C68O.19650.0.v2 b/logs/scalars/20220925-032223/train/events.out.tfevents.1664068943.DESKTOP-GS9C68O.19650.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-032223/validation/events.out.tfevents.1664068946.DESKTOP-GS9C68O.19650.1.v2 b/logs/scalars/20220925-032223/validation/events.out.tfevents.1664068946.DESKTOP-GS9C68O.19650.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-032744/train/events.out.tfevents.1664069264.DESKTOP-GS9C68O.21661.0.v2 b/logs/scalars/20220925-032744/train/events.out.tfevents.1664069264.DESKTOP-GS9C68O.21661.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-032744/validation/events.out.tfevents.1664069267.DESKTOP-GS9C68O.21661.1.v2 b/logs/scalars/20220925-032744/validation/events.out.tfevents.1664069267.DESKTOP-GS9C68O.21661.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-033722/train/events.out.tfevents.1664069842.DESKTOP-GS9C68O.23633.0.v2 b/logs/scalars/20220925-033722/train/events.out.tfevents.1664069842.DESKTOP-GS9C68O.23633.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-033722/validation/events.out.tfevents.1664069844.DESKTOP-GS9C68O.23633.1.v2 b/logs/scalars/20220925-033722/validation/events.out.tfevents.1664069844.DESKTOP-GS9C68O.23633.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-033901/train/events.out.tfevents.1664069941.DESKTOP-GS9C68O.24264.0.v2 b/logs/scalars/20220925-033901/train/events.out.tfevents.1664069941.DESKTOP-GS9C68O.24264.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-033901/validation/events.out.tfevents.1664069943.DESKTOP-GS9C68O.24264.1.v2 b/logs/scalars/20220925-033901/validation/events.out.tfevents.1664069943.DESKTOP-GS9C68O.24264.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-035155/train/events.out.tfevents.1664070715.DESKTOP-GS9C68O.24016.0.v2 b/logs/scalars/20220925-035155/train/events.out.tfevents.1664070715.DESKTOP-GS9C68O.24016.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-035155/validation/events.out.tfevents.1664070718.DESKTOP-GS9C68O.24016.1.v2 b/logs/scalars/20220925-035155/validation/events.out.tfevents.1664070718.DESKTOP-GS9C68O.24016.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-131313/train/events.out.tfevents.1664104394.DESKTOP-GS9C68O.14144.0.v2 b/logs/scalars/20220925-131313/train/events.out.tfevents.1664104394.DESKTOP-GS9C68O.14144.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-131313/validation/events.out.tfevents.1664104399.DESKTOP-GS9C68O.14144.1.v2 b/logs/scalars/20220925-131313/validation/events.out.tfevents.1664104399.DESKTOP-GS9C68O.14144.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-140854/train/events.out.tfevents.1664107734.DESKTOP-GS9C68O.16997.0.v2 b/logs/scalars/20220925-140854/train/events.out.tfevents.1664107734.DESKTOP-GS9C68O.16997.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-140854/validation/events.out.tfevents.1664107738.DESKTOP-GS9C68O.16997.1.v2 b/logs/scalars/20220925-140854/validation/events.out.tfevents.1664107738.DESKTOP-GS9C68O.16997.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-140955/train/events.out.tfevents.1664107795.DESKTOP-GS9C68O.17450.0.v2 b/logs/scalars/20220925-140955/train/events.out.tfevents.1664107795.DESKTOP-GS9C68O.17450.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-140955/validation/events.out.tfevents.1664107798.DESKTOP-GS9C68O.17450.1.v2 b/logs/scalars/20220925-140955/validation/events.out.tfevents.1664107798.DESKTOP-GS9C68O.17450.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-141424/train/events.out.tfevents.1664108064.DESKTOP-GS9C68O.19108.0.v2 b/logs/scalars/20220925-141424/train/events.out.tfevents.1664108064.DESKTOP-GS9C68O.19108.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-141424/train/events.out.tfevents.1664108360.DESKTOP-GS9C68O.19108.2.v2 b/logs/scalars/20220925-141424/train/events.out.tfevents.1664108360.DESKTOP-GS9C68O.19108.2.v2 Binary files differ. diff --git a/logs/scalars/20220925-141424/validation/events.out.tfevents.1664108067.DESKTOP-GS9C68O.19108.1.v2 b/logs/scalars/20220925-141424/validation/events.out.tfevents.1664108067.DESKTOP-GS9C68O.19108.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-141424/validation/events.out.tfevents.1664108361.DESKTOP-GS9C68O.19108.3.v2 b/logs/scalars/20220925-141424/validation/events.out.tfevents.1664108361.DESKTOP-GS9C68O.19108.3.v2 Binary files differ. diff --git a/logs/scalars/20220925-143113/train/events.out.tfevents.1664109073.DESKTOP-GS9C68O.23359.0.v2 b/logs/scalars/20220925-143113/train/events.out.tfevents.1664109073.DESKTOP-GS9C68O.23359.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-143113/validation/events.out.tfevents.1664109076.DESKTOP-GS9C68O.23359.1.v2 b/logs/scalars/20220925-143113/validation/events.out.tfevents.1664109076.DESKTOP-GS9C68O.23359.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-143834/train/events.out.tfevents.1664109514.DESKTOP-GS9C68O.25901.0.v2 b/logs/scalars/20220925-143834/train/events.out.tfevents.1664109514.DESKTOP-GS9C68O.25901.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-143834/validation/events.out.tfevents.1664109516.DESKTOP-GS9C68O.25901.1.v2 b/logs/scalars/20220925-143834/validation/events.out.tfevents.1664109516.DESKTOP-GS9C68O.25901.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-145444/train/events.out.tfevents.1664110484.DESKTOP-GS9C68O.30535.0.v2 b/logs/scalars/20220925-145444/train/events.out.tfevents.1664110484.DESKTOP-GS9C68O.30535.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-145444/validation/events.out.tfevents.1664110487.DESKTOP-GS9C68O.30535.1.v2 b/logs/scalars/20220925-145444/validation/events.out.tfevents.1664110487.DESKTOP-GS9C68O.30535.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-145812/train/events.out.tfevents.1664110692.DESKTOP-GS9C68O.31078.0.v2 b/logs/scalars/20220925-145812/train/events.out.tfevents.1664110692.DESKTOP-GS9C68O.31078.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-145812/validation/events.out.tfevents.1664110694.DESKTOP-GS9C68O.31078.1.v2 b/logs/scalars/20220925-145812/validation/events.out.tfevents.1664110694.DESKTOP-GS9C68O.31078.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-152101/train/events.out.tfevents.1664112061.DESKTOP-GS9C68O.32341.0.v2 b/logs/scalars/20220925-152101/train/events.out.tfevents.1664112061.DESKTOP-GS9C68O.32341.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-152101/validation/events.out.tfevents.1664112064.DESKTOP-GS9C68O.32341.1.v2 b/logs/scalars/20220925-152101/validation/events.out.tfevents.1664112064.DESKTOP-GS9C68O.32341.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-152710/train/events.out.tfevents.1664112431.DESKTOP-GS9C68O.2214.0.v2 b/logs/scalars/20220925-152710/train/events.out.tfevents.1664112431.DESKTOP-GS9C68O.2214.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-152710/validation/events.out.tfevents.1664112433.DESKTOP-GS9C68O.2214.1.v2 b/logs/scalars/20220925-152710/validation/events.out.tfevents.1664112433.DESKTOP-GS9C68O.2214.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-152945/train/events.out.tfevents.1664112585.DESKTOP-GS9C68O.3277.0.v2 b/logs/scalars/20220925-152945/train/events.out.tfevents.1664112585.DESKTOP-GS9C68O.3277.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-152945/validation/events.out.tfevents.1664112587.DESKTOP-GS9C68O.3277.1.v2 b/logs/scalars/20220925-152945/validation/events.out.tfevents.1664112587.DESKTOP-GS9C68O.3277.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-153730/train/events.out.tfevents.1664113050.DESKTOP-GS9C68O.5066.0.v2 b/logs/scalars/20220925-153730/train/events.out.tfevents.1664113050.DESKTOP-GS9C68O.5066.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-153730/validation/events.out.tfevents.1664113052.DESKTOP-GS9C68O.5066.1.v2 b/logs/scalars/20220925-153730/validation/events.out.tfevents.1664113052.DESKTOP-GS9C68O.5066.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-153859/train/events.out.tfevents.1664113139.DESKTOP-GS9C68O.5507.0.v2 b/logs/scalars/20220925-153859/train/events.out.tfevents.1664113139.DESKTOP-GS9C68O.5507.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-153859/validation/events.out.tfevents.1664113141.DESKTOP-GS9C68O.5507.1.v2 b/logs/scalars/20220925-153859/validation/events.out.tfevents.1664113141.DESKTOP-GS9C68O.5507.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-154101/train/events.out.tfevents.1664113261.DESKTOP-GS9C68O.6032.0.v2 b/logs/scalars/20220925-154101/train/events.out.tfevents.1664113261.DESKTOP-GS9C68O.6032.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-154101/validation/events.out.tfevents.1664113263.DESKTOP-GS9C68O.6032.1.v2 b/logs/scalars/20220925-154101/validation/events.out.tfevents.1664113263.DESKTOP-GS9C68O.6032.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-154237/train/events.out.tfevents.1664113358.DESKTOP-GS9C68O.6696.0.v2 b/logs/scalars/20220925-154237/train/events.out.tfevents.1664113358.DESKTOP-GS9C68O.6696.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-154237/validation/events.out.tfevents.1664113360.DESKTOP-GS9C68O.6696.1.v2 b/logs/scalars/20220925-154237/validation/events.out.tfevents.1664113360.DESKTOP-GS9C68O.6696.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-154904/train/events.out.tfevents.1664113744.DESKTOP-GS9C68O.8421.0.v2 b/logs/scalars/20220925-154904/train/events.out.tfevents.1664113744.DESKTOP-GS9C68O.8421.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-154904/validation/events.out.tfevents.1664113746.DESKTOP-GS9C68O.8421.1.v2 b/logs/scalars/20220925-154904/validation/events.out.tfevents.1664113746.DESKTOP-GS9C68O.8421.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-155349/train/events.out.tfevents.1664114029.DESKTOP-GS9C68O.9962.0.v2 b/logs/scalars/20220925-155349/train/events.out.tfevents.1664114029.DESKTOP-GS9C68O.9962.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-155349/validation/events.out.tfevents.1664114031.DESKTOP-GS9C68O.9962.1.v2 b/logs/scalars/20220925-155349/validation/events.out.tfevents.1664114031.DESKTOP-GS9C68O.9962.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-155531/train/events.out.tfevents.1664114131.DESKTOP-GS9C68O.10778.0.v2 b/logs/scalars/20220925-155531/train/events.out.tfevents.1664114131.DESKTOP-GS9C68O.10778.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-155531/validation/events.out.tfevents.1664114133.DESKTOP-GS9C68O.10778.1.v2 b/logs/scalars/20220925-155531/validation/events.out.tfevents.1664114133.DESKTOP-GS9C68O.10778.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-155633/train/events.out.tfevents.1664114193.DESKTOP-GS9C68O.11193.0.v2 b/logs/scalars/20220925-155633/train/events.out.tfevents.1664114193.DESKTOP-GS9C68O.11193.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-155633/validation/events.out.tfevents.1664114195.DESKTOP-GS9C68O.11193.1.v2 b/logs/scalars/20220925-155633/validation/events.out.tfevents.1664114195.DESKTOP-GS9C68O.11193.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-164347/train/events.out.tfevents.1664117027.DESKTOP-GS9C68O.13412.0.v2 b/logs/scalars/20220925-164347/train/events.out.tfevents.1664117027.DESKTOP-GS9C68O.13412.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-164347/validation/events.out.tfevents.1664117032.DESKTOP-GS9C68O.13412.1.v2 b/logs/scalars/20220925-164347/validation/events.out.tfevents.1664117032.DESKTOP-GS9C68O.13412.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-211043/train/events.out.tfevents.1664134197.DESKTOP-GS9C68O.31598.762.v2 b/logs/scalars/20220925-211043/train/events.out.tfevents.1664134197.DESKTOP-GS9C68O.31598.762.v2 Binary files differ. diff --git a/logs/scalars/20220925-211043/train/events.out.tfevents.1664134384.DESKTOP-GS9C68O.31598.764.v2 b/logs/scalars/20220925-211043/train/events.out.tfevents.1664134384.DESKTOP-GS9C68O.31598.764.v2 Binary files differ. diff --git a/logs/scalars/20220925-211043/validation/events.out.tfevents.1664134198.DESKTOP-GS9C68O.31598.763.v2 b/logs/scalars/20220925-211043/validation/events.out.tfevents.1664134198.DESKTOP-GS9C68O.31598.763.v2 Binary files differ. diff --git a/logs/scalars/20220925-211043/validation/events.out.tfevents.1664134385.DESKTOP-GS9C68O.31598.765.v2 b/logs/scalars/20220925-211043/validation/events.out.tfevents.1664134385.DESKTOP-GS9C68O.31598.765.v2 Binary files differ. diff --git a/model.png b/model.png Binary files differ. diff --git a/models/spam_keras_1664119406.7470543/keras_metadata.pb b/models/spam_keras_1664119406.7470543/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e77b605f3f16ba228cfd9967c843f229998da2d32e4d689594d2419cd490a8a +size 11458 diff --git a/models/spam_keras_1664119406.7470543/saved_model.pb b/models/spam_keras_1664119406.7470543/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96274eafec3e5ab61071ad31f91f628e58095c1584bc6f0c6ff7f708a57b12ab +size 124581 diff --git a/models/spam_keras_1664119406.7470543/variables/variables.data-00000-of-00001 b/models/spam_keras_1664119406.7470543/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34441ca2c2d37e1f89fa76d4cbc8cfcb2de949393984e690c7a983fa3116dffa +size 200607 diff --git a/models/spam_keras_1664119406.7470543/variables/variables.index b/models/spam_keras_1664119406.7470543/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4eebe20268998158baaaea230b4859a4792cd47661707b82e3eea535b0d4a829 +size 1636 diff --git a/models/spam_keras_1664120470.356158/keras_metadata.pb b/models/spam_keras_1664120470.356158/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e77b605f3f16ba228cfd9967c843f229998da2d32e4d689594d2419cd490a8a +size 11458 diff --git a/models/spam_keras_1664120470.356158/saved_model.pb b/models/spam_keras_1664120470.356158/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6a3de1814db3a782e42b3920f5a0ff77a4beb4c71860d086a86fb6f90d96f45 +size 124581 diff --git a/models/spam_keras_1664120470.356158/variables/variables.data-00000-of-00001 b/models/spam_keras_1664120470.356158/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a574d505833674d65bab584e903f71a64875c242ba3e705c6cddb636e6c7f03 +size 200607 diff --git a/models/spam_keras_1664120470.356158/variables/variables.index b/models/spam_keras_1664120470.356158/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4dc16e8fca918dea181a59f33094b0143a1d81e5795ac8f91f3c4afe2d254f1 +size 1636 diff --git a/models/spam_keras_1664120844.35066/keras_metadata.pb b/models/spam_keras_1664120844.35066/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e77b605f3f16ba228cfd9967c843f229998da2d32e4d689594d2419cd490a8a +size 11458 diff --git a/models/spam_keras_1664120844.35066/saved_model.pb b/models/spam_keras_1664120844.35066/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6a3de1814db3a782e42b3920f5a0ff77a4beb4c71860d086a86fb6f90d96f45 +size 124581 diff --git a/models/spam_keras_1664120844.35066/variables/variables.data-00000-of-00001 b/models/spam_keras_1664120844.35066/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee93acf7cc930fb2c15ab20f5a82d2941f6ef7b8ca5135640148fe162b42dbd5 +size 200607 diff --git a/models/spam_keras_1664120844.35066/variables/variables.index b/models/spam_keras_1664120844.35066/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f882735d4dc1b47edf05b751e9183085535931e16348f7e29401a0be32dfb08 +size 1636 diff --git a/models/spam_keras_1664121491.4855378/keras_metadata.pb b/models/spam_keras_1664121491.4855378/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e77b605f3f16ba228cfd9967c843f229998da2d32e4d689594d2419cd490a8a +size 11458 diff --git a/models/spam_keras_1664121491.4855378/saved_model.pb b/models/spam_keras_1664121491.4855378/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96274eafec3e5ab61071ad31f91f628e58095c1584bc6f0c6ff7f708a57b12ab +size 124581 diff --git a/models/spam_keras_1664121491.4855378/variables/variables.data-00000-of-00001 b/models/spam_keras_1664121491.4855378/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:615beec1d26845842f54c973e8c892709cf926c601005a31cf95ec3e54047681 +size 200607 diff --git a/models/spam_keras_1664121491.4855378/variables/variables.index b/models/spam_keras_1664121491.4855378/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9fd4f8cb268f33f52690fc5caf89abb5fbe27574ccd53f7e1e9ca96c3250b49 +size 1636 diff --git a/models/spam_keras_1664121989.1880333/keras_metadata.pb b/models/spam_keras_1664121989.1880333/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e77b605f3f16ba228cfd9967c843f229998da2d32e4d689594d2419cd490a8a +size 11458 diff --git a/models/spam_keras_1664121989.1880333/saved_model.pb b/models/spam_keras_1664121989.1880333/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f5c5a5681aa374c8980cfc8b59ae7c3dc3bc1ae2134362d27ef3fc5156810e1 +size 124581 diff --git a/models/spam_keras_1664121989.1880333/variables/variables.data-00000-of-00001 b/models/spam_keras_1664121989.1880333/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:749ec422c04f7afb712c0baba2c06473b76f3a1f489375735a71205621b07a31 +size 200607 diff --git a/models/spam_keras_1664121989.1880333/variables/variables.index b/models/spam_keras_1664121989.1880333/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc7368426b0a33b2523ccfe3868e83505d1736939ca22d005c0a3cccd551b491 +size 1636 diff --git a/models/spam_keras_1664126943.6115348/keras_metadata.pb b/models/spam_keras_1664126943.6115348/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad638e79d5c28836607ffdf261d05133a38573a92ab8d4f862676ba641b48b1f +size 11543 diff --git a/models/spam_keras_1664126943.6115348/saved_model.pb b/models/spam_keras_1664126943.6115348/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:857c72d7a29be670c0331ecd79cb810fd425983684f1fcbbbd5265810734d2f5 +size 125686 diff --git a/models/spam_keras_1664126943.6115348/variables/variables.data-00000-of-00001 b/models/spam_keras_1664126943.6115348/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2fd52a0db574a45ee70c070c687f3ba25415d0885f7380bbed855aaab34151d +size 200724 diff --git a/models/spam_keras_1664126943.6115348/variables/variables.index b/models/spam_keras_1664126943.6115348/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2dfb4ca69059a3e23358b99143c0baa35017e0045a7580958fcb1103ac0a1727 +size 1693 diff --git a/models/spam_keras_1664127829.0862195/keras_metadata.pb b/models/spam_keras_1664127829.0862195/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7418e24b6afe34bfb5e2593817261a2b22b273bbe729cb18ba039b04d705d2ca +size 11590 diff --git a/models/spam_keras_1664127829.0862195/saved_model.pb b/models/spam_keras_1664127829.0862195/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0987b67aa981c2303f0e3e04ceae2e4dff1a10d986e40641b37879314cf4cc0 +size 128293 diff --git a/models/spam_keras_1664127829.0862195/variables/variables.data-00000-of-00001 b/models/spam_keras_1664127829.0862195/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce9402ca04a01c62d91993028488bdbfde22afce74ee877d39438abceeda7bc7 +size 201027 diff --git a/models/spam_keras_1664127829.0862195/variables/variables.index b/models/spam_keras_1664127829.0862195/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73f53d346a58a1b6a1a349a4544cda01922ecefbac2a031fe58217041f787529 +size 1828 diff --git a/models/spam_keras_1664128186.1492417/keras_metadata.pb b/models/spam_keras_1664128186.1492417/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86bb01c1e2f61c82af718d16719370023f328552b1272468b249837766fbfd23 +size 11414 diff --git a/models/spam_keras_1664128186.1492417/saved_model.pb b/models/spam_keras_1664128186.1492417/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bfaa8ad1e9c7898d8e99a9f47687317d2e4f2e824e80afbcdd797f0a152c8e3 +size 125669 diff --git a/models/spam_keras_1664128186.1492417/variables/variables.data-00000-of-00001 b/models/spam_keras_1664128186.1492417/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4850dd8fb3198dd3e555e5d6de074ef95e3388678790aba70748d837161499d +size 200823 diff --git a/models/spam_keras_1664128186.1492417/variables/variables.index b/models/spam_keras_1664128186.1492417/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:646560997de94af79661c722691ae5f7e2a9295506177fc11dffa6da4b26b7a9 +size 1642 diff --git a/models/spam_keras_1664128756.400426/keras_metadata.pb b/models/spam_keras_1664128756.400426/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:321a902cdec70d1287035beee65a8298b9108f076a6bc68b322522eac1693e76 +size 11445 diff --git a/models/spam_keras_1664128756.400426/saved_model.pb b/models/spam_keras_1664128756.400426/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:074441ce9b57da52b1e8d79e8d7a9e87b80c695c120cf0e7a097e8162da669e3 +size 125918 diff --git a/models/spam_keras_1664128756.400426/variables/variables.data-00000-of-00001 b/models/spam_keras_1664128756.400426/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5dfa670e4fa64e9a317867f71175a1f9890e36cdb9bd1889aefb8bbb6b65024d +size 200748 diff --git a/models/spam_keras_1664128756.400426/variables/variables.index b/models/spam_keras_1664128756.400426/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65165e31f9e28686cb03ee7c132aed1685b2c5fa87a49f1315730fa2dbf7dac9 +size 1695 diff --git a/models/spam_keras_1664129333.9655871/keras_metadata.pb b/models/spam_keras_1664129333.9655871/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3def31dbdac691cb8538bd4bc80d775ff09d063e4b7c7c896b076b9af5cccf9 +size 14472 diff --git a/models/spam_keras_1664129333.9655871/saved_model.pb b/models/spam_keras_1664129333.9655871/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8efe85fb5a29920fc4b49ce966e7a04ba7157fbfcee9dae9a91f120cfa7263f2 +size 163935 diff --git a/models/spam_keras_1664129333.9655871/variables/variables.data-00000-of-00001 b/models/spam_keras_1664129333.9655871/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ee2363fb5d685f739c410a9518646285051136c8d5785ecd6fb80b0b882195c +size 205897 diff --git a/models/spam_keras_1664129333.9655871/variables/variables.index b/models/spam_keras_1664129333.9655871/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8e7baad6fad7a119b6e62dec098b8398d7dc9ca90f9316a03df7e90939c1cc9 +size 2011 diff --git a/models/spam_keras_1664129613.5254984/keras_metadata.pb b/models/spam_keras_1664129613.5254984/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15070198889736fc045f5280094e3e7627d1308c6d50850984b3c61ecb42a065 +size 14472 diff --git a/models/spam_keras_1664129613.5254984/saved_model.pb b/models/spam_keras_1664129613.5254984/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93b6b71d74394603b27213c278381226abf1da883ad01766226c10bcba4115ac +size 163935 diff --git a/models/spam_keras_1664129613.5254984/variables/variables.data-00000-of-00001 b/models/spam_keras_1664129613.5254984/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1fd1cb7d1f183a93eb6a2176196ba5429bcefd45951b987666ceddc81dc79800 +size 400969 diff --git a/models/spam_keras_1664129613.5254984/variables/variables.index b/models/spam_keras_1664129613.5254984/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b05b8c127bb149b086863a3a3fe9f395f0fcb9050c341591aebfa49f082a3ad3 +size 2011 diff --git a/models/spam_keras_1664129913.3062747/keras_metadata.pb b/models/spam_keras_1664129913.3062747/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a7b58b7c09d939e254a96bbcb7ded14573a35d5fb6bde416dd638cd50d84a00 +size 14472 diff --git a/models/spam_keras_1664129913.3062747/saved_model.pb b/models/spam_keras_1664129913.3062747/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ed57221d872439134fe497e699cdfd8c9d213877de06fb3ed8b6d9132efd47b +size 163935 diff --git a/models/spam_keras_1664129913.3062747/variables/variables.data-00000-of-00001 b/models/spam_keras_1664129913.3062747/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51042f13380c6851fa5b4c2dbfd2b2062f956253b1c38d95813457f030e531f6 +size 400969 diff --git a/models/spam_keras_1664129913.3062747/variables/variables.index b/models/spam_keras_1664129913.3062747/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae02bf533b1da724b1361dffb8dd4f57f69f4d37b245bafdf968233be22dceb9 +size 2011 diff --git a/models/spam_keras_1664130206.8331552/keras_metadata.pb b/models/spam_keras_1664130206.8331552/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:487e7b541493c149613d9174ba815abd0d782f3b84db557a062076850cd9bc93 +size 11458 diff --git a/models/spam_keras_1664130206.8331552/saved_model.pb b/models/spam_keras_1664130206.8331552/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66154ef03e369c261dc3ccb8d5904f8762a7669b988383772659d2d351d93e4b +size 124581 diff --git a/models/spam_keras_1664130206.8331552/variables/variables.data-00000-of-00001 b/models/spam_keras_1664130206.8331552/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6f8fac0c7b10a36dc403fe3a042f003eb9a5779076d3c32babbc1e1e6736b81 +size 393759 diff --git a/models/spam_keras_1664130206.8331552/variables/variables.index b/models/spam_keras_1664130206.8331552/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aca7f95fde7bb335111dc5e939f0f31dfc639614b47e866cf0108b7d33cf159a +size 1636 diff --git a/models/spam_keras_1664130750.0237675/keras_metadata.pb b/models/spam_keras_1664130750.0237675/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:487e7b541493c149613d9174ba815abd0d782f3b84db557a062076850cd9bc93 +size 11458 diff --git a/models/spam_keras_1664130750.0237675/saved_model.pb b/models/spam_keras_1664130750.0237675/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9fb5f0c07ea74430dd15250357958b8a6dbc02090a4d67f92a4c79cdce4461aa +size 124581 diff --git a/models/spam_keras_1664130750.0237675/variables/variables.data-00000-of-00001 b/models/spam_keras_1664130750.0237675/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e82d23e508c8340f613dc248ee2f39fb93709f0c472ec06f1e46428806bdbd48 +size 393759 diff --git a/models/spam_keras_1664130750.0237675/variables/variables.index b/models/spam_keras_1664130750.0237675/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7544df2aa55dcfe55492918b6a9d2f88388e69228c4d8114683a60d2639d15a5 +size 1636 diff --git a/models/spam_keras_1664131195.3111334/keras_metadata.pb b/models/spam_keras_1664131195.3111334/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e77b605f3f16ba228cfd9967c843f229998da2d32e4d689594d2419cd490a8a +size 11458 diff --git a/models/spam_keras_1664131195.3111334/saved_model.pb b/models/spam_keras_1664131195.3111334/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96274eafec3e5ab61071ad31f91f628e58095c1584bc6f0c6ff7f708a57b12ab +size 124581 diff --git a/models/spam_keras_1664131195.3111334/variables/variables.data-00000-of-00001 b/models/spam_keras_1664131195.3111334/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2750c4aee481f3bda15acd623d9c96c240857b4f29b00b4d2b0be1afe2496e68 +size 200607 diff --git a/models/spam_keras_1664131195.3111334/variables/variables.index b/models/spam_keras_1664131195.3111334/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c51291faa13c7d8c6bea8a33bbf91e609c45bdc95102bc57dfcfb36ce0969bc1 +size 1636 diff --git a/models/spam_keras_1664131718.231786/keras_metadata.pb b/models/spam_keras_1664131718.231786/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e77b605f3f16ba228cfd9967c843f229998da2d32e4d689594d2419cd490a8a +size 11458 diff --git a/models/spam_keras_1664131718.231786/saved_model.pb b/models/spam_keras_1664131718.231786/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25aafe318e35ec606b30e90403bf59a7ce86285f5fed5b02f498e8d82257fe80 +size 124359 diff --git a/models/spam_keras_1664131718.231786/variables/variables.data-00000-of-00001 b/models/spam_keras_1664131718.231786/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf6461fb240ce4883e097f4c7bc553a6e6ba2d22ac9388afa83291f9a90b07f4 +size 200607 diff --git a/models/spam_keras_1664131718.231786/variables/variables.index b/models/spam_keras_1664131718.231786/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d533d5079455151b1140dd64ed901942330a2f9af344a7d02e4824ce9eacd27 +size 1636 diff --git a/models/spam_keras_1664131806.6781664/keras_metadata.pb b/models/spam_keras_1664131806.6781664/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e77b605f3f16ba228cfd9967c843f229998da2d32e4d689594d2419cd490a8a +size 11458 diff --git a/models/spam_keras_1664131806.6781664/saved_model.pb b/models/spam_keras_1664131806.6781664/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25aafe318e35ec606b30e90403bf59a7ce86285f5fed5b02f498e8d82257fe80 +size 124359 diff --git a/models/spam_keras_1664131806.6781664/variables/variables.data-00000-of-00001 b/models/spam_keras_1664131806.6781664/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46d1fcb7f7afde0135ae0f2b1f992e064c523a789ba5cdc21ee84e05ebd609d1 +size 200607 diff --git a/models/spam_keras_1664131806.6781664/variables/variables.index b/models/spam_keras_1664131806.6781664/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b93e3243e68555ecf5c37fa825ef2439623da27c6cf9aa504cd8005a9a3503bd +size 1636 diff --git a/models/spam_keras_1664132145.5040135/keras_metadata.pb b/models/spam_keras_1664132145.5040135/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e77b605f3f16ba228cfd9967c843f229998da2d32e4d689594d2419cd490a8a +size 11458 diff --git a/models/spam_keras_1664132145.5040135/saved_model.pb b/models/spam_keras_1664132145.5040135/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2fd0e93db5d796717c1822eb13332fd7e8f19b93636ae8e7504563d3c2ad152 +size 124581 diff --git a/models/spam_keras_1664132145.5040135/variables/variables.data-00000-of-00001 b/models/spam_keras_1664132145.5040135/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e54cb2c5385a7e9002575c960bbfd92a10bbb809ae6992efc99d9185bc1b090d +size 200607 diff --git a/models/spam_keras_1664132145.5040135/variables/variables.index b/models/spam_keras_1664132145.5040135/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:837faa1896f8bc5bd436c0dd58c3f37a4c2b6d54129c3650459538b960271713 +size 1636 diff --git a/models/spam_keras_1664134405.3171766/keras_metadata.pb b/models/spam_keras_1664134405.3171766/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8af65b92c1c538090a6e84a85c0e5da914baf5c2ccde7d7eb733103568ee1173 +size 11509 diff --git a/models/spam_keras_1664134405.3171766/saved_model.pb b/models/spam_keras_1664134405.3171766/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49c77dffc6f39b736c492c8809f16c38a3ba5682d3312e6099ea03d2ce9a5e5e +size 126161 diff --git a/models/spam_keras_1664134405.3171766/variables/variables.data-00000-of-00001 b/models/spam_keras_1664134405.3171766/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27cdedf0a1347a68107d8cb8dd4ee733a783d51eee4397fb6ee18312bcf614e5 +size 204515 diff --git a/models/spam_keras_1664134405.3171766/variables/variables.index b/models/spam_keras_1664134405.3171766/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f1e301f654936493c854beb08bb08cfd34c81222f2acea6a243614d3faad2f6 +size 1636 diff --git a/spam-keras.ipynb b/spam-keras.ipynb @@ -10,30 +10,19 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2022-09-25 16:43:40.699014: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA\n", - "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "2022-09-25 16:43:41.420174: E tensorflow/stream_executor/cuda/cuda_blas.cc:2981] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n", - "2022-09-25 16:43:42.717884: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory\n", - "2022-09-25 16:43:42.718077: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory\n", - "2022-09-25 16:43:42.718084: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.\n" - ] - } - ], + "outputs": [], "source": [ - "import pandas as pd\n", + "import keras_tuner as kt\n", + "import matplotlib.pyplot as plt\n", "import numpy as np\n", - "from tensorflow.keras.preprocessing.text import Tokenizer\n", - "from tensorflow.keras.preprocessing.sequence import pad_sequences\n", + "import pandas as pd\n", "import tensorflow as tf\n", - "import matplotlib.pyplot as plt\n", - "from nltk.corpus import stopwords\n" + "import tensorflow_addons as tfa\n", + "from nltk.corpus import stopwords\n", + "from tensorflow.keras.preprocessing.sequence import pad_sequences\n", + "from tensorflow.keras.preprocessing.text import Tokenizer" ] }, { @@ -45,7 +34,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -69,15 +58,54 @@ " clean_words = [word for word in words if (\n", " word not in stopwords_list or word in whitelist) and len(word) > 1]\n", " return \" \".join(clean_words)\n", - " \n", - "# Convert label to something useful\n", + "\n", + "# Remve unknown\n", "data.dropna(inplace=True)\n", + "\n", + "# Convert label to something useful\n", "def change_labels(x): return 1 if x == \"spam\" else 0\n", - "data['label'] = data['label'].apply(change_labels)\n", + "data['label'] = data['label'].apply(change_labels) \n", + "\n", + "# Count by label\n", + "spam = 0\n", + "ham = 0\n", + "\n", + "\n", + "def count_labels(x):\n", + " if x == 1:\n", + " global spam\n", + " spam += 1\n", + " else:\n", + " global ham\n", + " ham += 1\n", + " return x\n", + "#.apply(count_labels)\n", + "#print(\"Spam: \", spam)\n", + "#print(\"Ham: \", ham)\n", + "\n", + "# Remove stopwords\n", "data['message'] = data['message'].apply(\n", " remove_stopwords)\n", "\n", + "# Print unbalanced\n", + "print(data.groupby('label').describe().T)\n", + "\n", + "\n", + "ham_msg = data[data.label == 0]\n", + "spam_msg = data[data.label == 1]\n", + "\n", + "#randomly taking data from ham_msg\n", + "ham_msg = ham_msg.sample(n=len(spam_msg), random_state=42)\n", + "\n", + "data = pd.concat([ham_msg, spam_msg]).reset_index(drop=True)\n", + "\n", + "# Balanced\n", + "print(data.groupby('label').describe().T)\n", + "\n", + "# Shuffle data\n", "data = data.sample(frac=1).reset_index(drop=True)\n", + "\n", + "# Split data into messages and label sets\n", "sentences = data['message'].tolist()\n", "labels = data['label'].tolist()\n", "\n", @@ -103,26 +131,28 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ "vocab_size = 1000\n", "embedding_dim = 16\n", + "#embedding_dim = 32\n", "#max_length = 120\n", "max_length = None\n", "trunc_type = 'post'\n", "padding_type = 'post'\n", - "oov_tok = \"<OOV>\"" + "oov_tok = \"<OOV>\"\n" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ "tokenizer = Tokenizer(num_words=vocab_size, oov_token=oov_tok)\n", + "\n", "tokenizer.fit_on_texts(training_sentences)\n", "word_index = tokenizer.word_index\n", "\n", @@ -132,7 +162,7 @@ "\n", "testing_sequences = tokenizer.texts_to_sequences(testing_sentences)\n", "testing_padded = pad_sequences(testing_sequences, maxlen=max_length,\n", - " padding=padding_type, truncating=trunc_type)" + " padding=padding_type, truncating=trunc_type)\n" ] }, { @@ -144,172 +174,150 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from datetime import datetime\n", + "\n", + "from tensorflow import keras\n", + "\n", + "logdir = \"logs/scalars/\" + datetime.now().strftime(\"%Y%m%d-%H%M%S\")\n", + "tensorboard_callback = keras.callbacks.TensorBoard(log_dir=logdir)\n", + "\n", + "hypertuner_logdir = \"hypertuner_logs/scalars/\" + datetime.now().strftime(\"%Y%m%d-%H%M%S\")\n", + "hypertuner_tensorboard_callback = keras.callbacks.TensorBoard(\n", + " log_dir=hypertuner_logdir)\n", + "# Define the checkpoint directory to store the checkpoints.\n", + "checkpoint_dir = './training_checkpoints'\n", + "# Define the name of the checkpoint files.\n", + "checkpoint_prefix = os.path.join(checkpoint_dir, \"ckpt_{epoch}\")\n", + "\n", + "#es_callback = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=3)" + ] + }, + { + "cell_type": "code", + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2022-09-25 16:43:45.621721: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:966] could not open file to read NUMA node: /sys/bus/pci/devices/0000:09:00.0/numa_node\n", - "Your kernel may have been built without NUMA support.\n", - "2022-09-25 16:43:45.777165: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:966] could not open file to read NUMA node: /sys/bus/pci/devices/0000:09:00.0/numa_node\n", - "Your kernel may have been built without NUMA support.\n", - "2022-09-25 16:43:45.777250: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:966] could not open file to read NUMA node: /sys/bus/pci/devices/0000:09:00.0/numa_node\n", - "Your kernel may have been built without NUMA support.\n", - "2022-09-25 16:43:45.779091: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA\n", - "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "2022-09-25 16:43:45.780964: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:966] could not open file to read NUMA node: /sys/bus/pci/devices/0000:09:00.0/numa_node\n", - "Your kernel may have been built without NUMA support.\n", - "2022-09-25 16:43:45.781071: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:966] could not open file to read NUMA node: /sys/bus/pci/devices/0000:09:00.0/numa_node\n", - "Your kernel may have been built without NUMA support.\n", - "2022-09-25 16:43:45.781133: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:966] could not open file to read NUMA node: /sys/bus/pci/devices/0000:09:00.0/numa_node\n", - "Your kernel may have been built without NUMA support.\n", - "2022-09-25 16:43:47.267758: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:966] could not open file to read NUMA node: /sys/bus/pci/devices/0000:09:00.0/numa_node\n", - "Your kernel may have been built without NUMA support.\n", - "2022-09-25 16:43:47.267970: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:966] could not open file to read NUMA node: /sys/bus/pci/devices/0000:09:00.0/numa_node\n", - "Your kernel may have been built without NUMA support.\n", - "2022-09-25 16:43:47.267984: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1700" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model: \"sequential\"\n", - "_________________________________________________________________\n", - " Layer (type) Output Shape Param # \n", - "=================================================================\n", - " embedding (Embedding) (None, None, 16) 16000 \n", - " \n", - " global_average_pooling1d (G (None, 16) 0 \n", - " lobalAveragePooling1D) \n", - " \n", - " dropout (Dropout) (None, 16) 0 \n", - " \n", - " dense (Dense) (None, 6) 102 \n", - " \n", - " dropout_1 (Dropout) (None, 6) 0 \n", - " \n", - " dense_1 (Dense) (None, 1) 7 \n", - " \n", - "=================================================================\n", - "Total params: 16,109\n", - "Trainable params: 16,109\n", - "Non-trainable params: 0\n", - "_________________________________________________________________\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "] Could not identify NUMA node of platform GPU id 0, defaulting to 0. Your kernel may not have been built with NUMA support.\n", - "2022-09-25 16:43:47.268086: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:966] could not open file to read NUMA node: /sys/bus/pci/devices/0000:09:00.0/numa_node\n", - "Your kernel may have been built without NUMA support.\n", - "2022-09-25 16:43:47.268497: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1616] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5904 MB memory: -> device: 0, name: NVIDIA GeForce RTX 2080 SUPER, pci bus id: 0000:09:00.0, compute capability: 7.5\n" - ] - } - ], + "outputs": [], "source": [ - "model = tf.keras.Sequential([\n", - " tf.keras.layers.Embedding(\n", - " vocab_size, embedding_dim, input_length=max_length),\n", - " tf.keras.layers.GlobalAveragePooling1D(),\n", - " tf.keras.layers.Dropout(.5,),\n", - " tf.keras.layers.Dense(6, activation='relu',\n", - " kernel_regularizer=tf.keras.regularizers.l2(0.0001)),\n", - " tf.keras.layers.Dropout(.5,),\n", - " tf.keras.layers.Dense(1, activation='sigmoid')\n", - "])\n", - "model.compile(loss=tf.keras.losses.BinaryCrossentropy(),\n", - " optimizer='adam', metrics=['accuracy'])\n", - "model.summary()\n" + "def model_builder(hp):\n", + " # Tune the number of units in the first Dense layer\n", + " # Choose an optimal value between 6-512\n", + " hp_units = hp.Int('units', min_value=6, max_value=512, step=6)\n", + " hp_dropout = hp.Float('dropout', min_value=.1, max_value=.9, step=.05)\n", + " hp_l2 = hp.Float('l2', min_value=0.0001, max_value=0.001, step=0.00005)\n", + " model = tf.keras.Sequential([\n", + " tf.keras.layers.Embedding(\n", + " vocab_size, embedding_dim, input_length=max_length),\n", + " tf.keras.layers.GlobalAveragePooling1D(),\n", + " tf.keras.layers.Dropout(hp_dropout,),\n", + " tf.keras.layers.Dense(units=hp_units, activation='relu',\n", + " kernel_regularizer=tf.keras.regularizers.l2(hp_l2)),\n", + " #tf.keras.layers.Dense(6, activation='relu',\n", + " # kernel_regularizer=tf.keras.regularizers.l2(0.0001)),\n", + " tf.keras.layers.Dropout(hp_dropout,),\n", + " tf.keras.layers.Dense(1, activation='sigmoid')\n", + " ])\n", + " # Adam was best so far\n", + " # tf.keras.optimizers.Nadam() has similar results to Adam but a bit worse. second best\n", + " hp_learning_rate = hp.Choice('learning_rate', values=[1e-2, 1e-3, 1e-4, 1e-5,])\n", + " opt = tf.keras.optimizers.Adam(learning_rate=hp_learning_rate)\n", + " # opt = tf.keras.optimizers.Nadam()\n", + " model.compile(loss=tf.keras.losses.BinaryCrossentropy(),\n", + " optimizer=opt, metrics=['accuracy'])\n", + " #print(model.summary())\n", + "\n", + " return model\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Train" + "## Get best hypermodel values" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "from datetime import datetime\n", - "from tensorflow import keras\n", - "logdir = \"logs/scalars/\" + datetime.now().strftime(\"%Y%m%d-%H%M%S\")\n", - "tensorboard_callback = keras.callbacks.TensorBoard(log_dir=logdir)\n", - "# Define the checkpoint directory to store the checkpoints.\n", - "checkpoint_dir = './training_checkpoints'\n", - "# Define the name of the checkpoint files.\n", - "checkpoint_prefix = os.path.join(checkpoint_dir, \"ckpt_{epoch}\")\n", + "tuner = kt.Hyperband(model_builder,\n", + " objective='val_accuracy',\n", + " max_epochs=750,\n", + " factor=3,\n", + " directory='hyper_tuning',\n", + " project_name='spam-keras')\n", + "stop_early = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=5)\n", + "tuner.search(padded, training_labels_final, epochs=800, verbose=0,\n", + " validation_data=(testing_padded, testing_labels_final), callbacks=[hypertuner_tensorboard_callback, stop_early])\n", + "# Get the optimal hyperparameters\n", + "best_hps = tuner.get_best_hyperparameters(num_trials=1)[0]\n", "\n", - "#es_callback = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=3)" + "print(f\"\"\"\n", + "The hyperparameter search is complete. The optimal number of units in the first densely-connected\n", + "layer is {best_hps.get('units')} and the optimal learning rate for the optimizer is {best_hps.get('learning_rate')}.\n", + "The optimal dropout rate is {best_hps.get('dropout')} and the optimal l2 rate is {best_hps.get('l2')}.\n", + "\"\"\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Train" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Average train loss: 0.09642073692753911\n", - "Average test loss: 0.10952864557504655\n" - ] - } - ], + "outputs": [], "source": [ - "num_epochs = 200\n", + "num_epochs = 600\n", + "model = tuner.hypermodel.build(best_hps)\n", "history = model.fit(padded, \n", " training_labels_final, \n", " epochs=num_epochs, \n", " verbose=0, \n", - " callbacks=[tensorboard_callback, \n", - " tf.keras.callbacks.ModelCheckpoint(filepath=checkpoint_prefix,\n", - " save_weights_only=True),\n", - " #es_callback\n", - " ],\n", + " callbacks=[tensorboard_callback,],\n", " validation_data=(testing_padded, testing_labels_final))\n", "\n", + "\n", + "val_acc_per_epoch = history.history['val_accuracy']\n", + "best_epoch = val_acc_per_epoch.index(max(val_acc_per_epoch)) + 1\n", + "print('Best epoch: %d' % (best_epoch,))\n", "print(\"Average train loss: \", np.average(history.history['loss']))\n", - "print(\"Average test loss: \", np.average(history.history['val_loss']))\n" + "print(\"Average test loss: \", np.average(history.history['val_loss']))\n", + "\n", + "hypermodel = tuner.hypermodel.build(best_hps)\n", + "hypermodel_history = hypermodel.fit(padded, training_labels_final, verbose=0,\n", + " epochs=best_epoch, validation_split=0.2,\n", + " callbacks=[tensorboard_callback,\n", + " tf.keras.callbacks.ModelCheckpoint(filepath=checkpoint_prefix,\n", + " save_weights_only=True),\n", + " #es_callback\n", + " ],\n", + " )\n", + "\n", + "print(\"Average train loss(hypermodel_history): \",\n", + " np.average(hypermodel_history.history['loss']))\n", + "print(\"Average test loss(hypermodel_history): \",\n", + " np.average(hypermodel_history.history['val_loss']))\n" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "INFO:tensorflow:Assets written to: ./models/spam_keras_1664117260.1010098/assets\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB9n0lEQVR4nO3dd3zT1f7H8VfSvUvpoqyy916yBAXFhbhRUQEVrgMX4nXcn9srTuSqOK5XxL1xoigb2VvZsndbVjddyff3x2nSlhYokDa0vJ+PRx9Jv/kmOWmgefeczznHZlmWhYiIiEg1Yfd2A0REREQ8SeFGREREqhWFGxEREalWFG5ERESkWlG4ERERkWpF4UZERESqFYUbERERqVYUbkRERKRaUbgRERGRakXhRkTOeNu3b8dmszFp0qSTvu/s2bOx2WzMnj37uOdNmjQJm83G9u3bT6mNInLmULgRERGRakXhRkRERKoVhRsRERGpVhRuROSEnnrqKWw2G3///Tc33XQTERERxMTE8Pjjj2NZFrt27WLQoEGEh4cTHx/Pq6++WuoxUlJSuO2224iLiyMwMJB27drx4YcfljovNTWVYcOGERERQWRkJEOHDiU1NbXMdm3YsIFrrrmGqKgoAgMD6dy5Mz/++KNHX/tbb71Fq1atCAgIICEhgbvvvrtUezZt2sTVV19NfHw8gYGB1KlTh+uvv560tDT3OdOmTaNXr15ERkYSGhpKs2bNeOyxxzzaVhExfL3dABGpOgYPHkyLFi144YUXmDJlCs899xxRUVG8++67nH/++bz44ot8+umnjBkzhi5dunDuuecCcOTIEfr27cvmzZsZNWoUDRo04Ouvv2bYsGGkpqZy3333AWBZFoMGDWLevHnccccdtGjRgu+++46hQ4eWasvatWvp2bMntWvX5pFHHiEkJISvvvqKK664gm+//ZYrr7zytF/vU089xdNPP03//v2588472bhxI2+//TZLly5l/vz5+Pn5kZeXx4ABA8jNzeWee+4hPj6ePXv28PPPP5OamkpERARr167lsssuo23btjzzzDMEBASwefNm5s+ff9ptFJEyWCIiJ/Dkk09agDVy5Ej3sYKCAqtOnTqWzWazXnjhBffxw4cPW0FBQdbQoUPdx8aPH28B1ieffOI+lpeXZ3Xv3t0KDQ210tPTLcuyrO+//94CrJdeeqnE8/Tu3dsCrA8++MB9vF+/flabNm2snJwc9zGn02n16NHDatKkifvYrFmzLMCaNWvWcV/jBx98YAHWtm3bLMuyrJSUFMvf39+68MILLYfD4T7vzTfftABr4sSJlmVZ1sqVKy3A+vrrr4/52K+99poFWPv37z9uG0TEMzQsJSLldvvtt7uv+/j40LlzZyzL4rbbbnMfj4yMpFmzZmzdutV97JdffiE+Pp4bbrjBfczPz497772XzMxM5syZ4z7P19eXO++8s8Tz3HPPPSXacejQIWbOnMl1111HRkYGBw4c4MCBAxw8eJABAwawadMm9uzZc1qvdfr06eTl5XH//fdjtxf9qhwxYgTh4eFMmTIFgIiICAB+++03srOzy3ysyMhIAH744QecTudptUtETkzhRkTKrV69eiW+j4iIIDAwkOjo6FLHDx8+7P5+x44dNGnSpERIAGjRooX7dtdlrVq1CA0NLXFes2bNSny/efNmLMvi8ccfJyYmpsTXk08+CZgan9PhatPRz+3v70/Dhg3dtzdo0IDRo0fzv//9j+joaAYMGMCECRNK1NsMHjyYnj17cvvttxMXF8f111/PV199paAjUkFUcyMi5ebj41OuY2DqZyqKKxSMGTOGAQMGlHlO48aNK+z5j/bqq68ybNgwfvjhB37//Xfuvfdexo4dy6JFi6hTpw5BQUHMnTuXWbNmMWXKFKZOncqXX37J+eefz++//37Mn6GInBr13IhIhatfvz6bNm0q1VOxYcMG9+2uy3379pGZmVnivI0bN5b4vmHDhoAZ2urfv3+ZX2FhYafd5rKeOy8vj23btrlvd2nTpg3/93//x9y5c/njjz/Ys2cP77zzjvt2u91Ov379GDduHOvWrePf//43M2fOZNasWafVThEpTeFGRCrcJZdcQlJSEl9++aX7WEFBAW+88QahoaH06dPHfV5BQQFvv/22+zyHw8Ebb7xR4vFiY2Pp27cv7777Lvv27Sv1fPv37z/tNvfv3x9/f39ef/31Er1Q77//PmlpaVx66aUApKenU1BQUOK+bdq0wW63k5ubC5gaoaO1b98ewH2OiHiOhqVEpMKNHDmSd999l2HDhrF8+XISExP55ptvmD9/PuPHj3f3sgwcOJCePXvyyCOPsH37dlq2bMnkyZNL1K+4TJgwgV69etGmTRtGjBhBw4YNSU5OZuHChezevZs///zztNocExPDo48+ytNPP81FF13E5ZdfzsaNG3nrrbfo0qULN910EwAzZ85k1KhRXHvttTRt2pSCggI+/vhjfHx8uPrqqwF45plnmDt3Lpdeein169cnJSWFt956izp16tCrV6/TaqeIlKZwIyIVLigoiNmzZ/PII4/w4Ycfkp6eTrNmzfjggw8YNmyY+zy73c6PP/7I/fffzyeffILNZuPyyy/n1VdfpUOHDiUes2XLlixbtoynn36aSZMmcfDgQWJjY+nQoQNPPPGER9r91FNPERMTw5tvvskDDzxAVFQUI0eO5Pnnn8fPzw+Adu3aMWDAAH766Sf27NlDcHAw7dq149dff+Wcc84B4PLLL2f79u1MnDiRAwcOEB0dTZ8+fXj66afds61ExHNsVkVW/YmIiIhUMtXciIiISLWicCMiIiLVisKNiIiIVCsKNyIiIlKtKNyIiIhItaJwIyIiItXKWbfOjdPpZO/evYSFhWGz2bzdHBERESkHy7LIyMggISGh1Ca8Rzvrws3evXupW7eut5shIiIip2DXrl3UqVPnuOecdeHGtcz7rl27CA8P93JrREREpDzS09OpW7duuTbFPevCjWsoKjw8XOFGRESkiilPSYkKikVERKRaUbgRERGRakXhRkRERKqVs67mprwcDgf5+fnebkaV5Ofnh4+Pj7ebISIiZymFm6NYlkVSUhKpqanebkqVFhkZSXx8vNYSEhGRSqdwcxRXsImNjSU4OFgfzifJsiyys7NJSUkBoFatWl5ukYiInG0UbopxOBzuYFOzZk1vN6fKCgoKAiAlJYXY2FgNUYmISKVSQXExrhqb4OBgL7ek6nP9DFW3JCIilU3hpgwaijp9+hmKiIi3KNyIiIhItaJwI6UkJiYyfvx4bzdDRETklKiguJro27cv7du390goWbp0KSEhIaffKBERES9QuPEQp2VR4LAA8Pc98zrELMvC4XDg63vitzwmJqYSWiQiIlIxzrxP4SrqSJ6DDUnpbDuQWenPPWzYMObMmcN//vMfbDYbNpuNSZMmYbPZ+PXXX+nUqRMBAQHMmzePLVu2MGjQIOLi4ggNDaVLly5Mnz69xOMdPSxls9n43//+x5VXXklwcDBNmjThxx9/rORXKSIiUj4KNydgWRbZeQUn/DqSX0BOvoPsPEe5zi/Pl2VZ5Wrj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fe1Eh/oDGpoSERHxlFPquenVqxejR4+mZ8+eLFmyhC+//BKAv//+mzp16ni0gdWOq+YmfS84ncRHBHIgM4/k9BxaJUR4t20iIiLVwCn13Lz55pv4+vryzTff8Pbbb1O7tvnA/vXXX7nooos82sBqJ6wW2OzgzIesFHdRsaaDi4iIeMYp9dzUq1ePn3/+udTx11577bQbVO35+JqAk74H0va417pJVrgRERHxiFPquQFwOBx8++23PPfcczz33HN89913OByOU3qsCRMmkJiYSGBgIN26dWPJkiXHPHfy5Ml07tyZyMhIQkJCaN++PR9//PGpvgzvcE8H3+VepVg1NyIiIp5xSuFm8+bNtGjRgltuuYXJkyczefJkbrrpJlq1asWWLVtO6rG+/PJLRo8ezZNPPsmKFSto164dAwYMICUlpczzo6Ki+Ne//sXChQv566+/GD58OMOHD+e33347lZfiHcWmg2uVYhEREc86pXBz77330qhRI3bt2sWKFStYsWIFO3fupEGDBtx7770n9Vjjxo1jxIgRDB8+nJYtW/LOO+8QHBzMxIkTyzy/b9++XHnllbRo0YJGjRpx33330bZt2xKLCp7xim3BEK/9pURERDzqlMLNnDlzeOmll4iKinIfq1mzJi+88AJz5swp9+Pk5eWxfPly+vfvX9Qgu53+/fuzcOHCE97fsixmzJjBxo0bOffcc8s8Jzc3l/T09BJfXufaHTxtd9GwlHpuREREPOKUwk1AQAAZGRmljmdmZuLv71/uxzlw4AAOh4O4uLgSx+Pi4khKSjrm/dLS0ggNDcXf359LL72UN954gwsuuKDMc8eOHUtERIT7q27duuVuX4VxTwcvGpZKzykgO6/Ai40SERGpHk4p3Fx22WWMHDmSxYsXY1kWlmWxaNEi7rjjDi6//HJPt7GUsLAwVq1axdKlS/n3v//N6NGjmT17dpnnPvroo6Slpbm/du3aVeHtO6Fiw1JhgX6E+PsA6r0RERHxhFOaCv76668zdOhQunfvjp+fHwD5+fkMGjSI8ePHl/txoqOj8fHxITk5ucTx5ORk4uPjj3k/u91O48aNAWjfvj3r169n7Nix9O3bt9S5AQEBBAScYdsauIalMpOhIJe4iEC27s8iKT2HhjGh3m2biIhIFXdK4SYyMpIffviBzZs3s379egBatGjhDhzl5e/v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YsQI9u3b5/566aWXvNTik9eqVasSbZ83b577tgceeICffvqJr7/+mjlz5rB3716uuuoqL7b25C1durTE65s2bRoA1157rfucqvb+ZWVl0a5dOyZMmFDm7S+99BKvv/4677zzDosXLyYkJIQBAwaQk5PjPmfIkCGsXbuWadOm8fPPPzN37lxGjhxZWS/huI73+rKzs1mxYgWPP/44K1asYPLkyWzcuJHLL7+81LnPPPNMiff1nnvuqYzml8uJ3kOAiy66qET7P//88xK3n8nvIZz4NRZ/bfv27WPixInYbDauvvrqEuedqe9jeT4fTvQ71OFwcOmll5KXl8eCBQv48MMPmTRpEk888YTnGmrJaevatat19913u793OBxWQkKCNXbsWC+2ynNSUlIswJozZ477WJ8+faz77rvPe406DU8++aTVrl27Mm9LTU21/Pz8rK+//tp9bP369RZgLVy4sJJa6Hn33Xef1ahRI8vpdFqWVbXfP8uyLMD67rvv3N87nU4rPj7eevnll93HUlNTrYCAAOvzzz+3LMuy1q1bZwHW0qVL3ef8+uuvls1ms/bs2VNpbS+Po19fWZYsWWIB1o4dO9zH6tevb7322msV2zgPKes1Dh061Bo0aNAx71OV3kPLKt/7OGjQIOv8888vcawqvY9Hfz6U53foL7/8YtntdispKcl9zttvv22Fh4dbubm5HmmXem5OU15eHsuXL6d///7uY3a7nf79+7Nw4UIvtsxz0tLSAIiKiipx/NNPPyU6OprWrVvz6KOPkp2d7Y3mnZJNmzaRkJBAw4YNGTJkCDt37gRg+fLl5Ofnl3g/mzdvTr169ars+5mXl8cnn3zCrbfeWmKz2Kr8/h1t27ZtJCUllXjfIiIi6Natm/t9W7hwIZGRkXTu3Nl9Tv/+/bHb7SxevLjS23y60tLSsNlsREZGljj+wgsvULNmTTp06MDLL7/s0a7+yjB79mxiY2Np1qwZd955JwcPHnTfVt3ew+TkZKZMmcJtt91W6raq8j4e/flQnt+hCxcupE2bNsTFxbnPGTBgAOnp6axdu9Yj7TrrNs70tAMHDuBwOEq8SQBxcXFs2LDBS63yHKfTyf3330/Pnj1p3bq1+/iNN95I/fr1SUhI4K+//uLhhx9m48aNTJ482YutLZ9u3boxadIkmjVrxr59+3j66afp3bs3a9asISkpCX9//1IfGHFxcSQlJXmnwafp+++/JzU1lWHDhrmPVeX3ryyu96as/4eu25KSkoiNjS1xu6+vL1FRUVXuvc3JyeHhhx/mhhtuKLEh4b333kvHjh2JiopiwYIFPProo+zbt49x48Z5sbXld9FFF3HVVVfRoEEDtmzZwmOPPcbFF1/MwoUL8fHxqVbvIcCHH35IWFhYqWHvqvI+lvX5UJ7foUlJSWX+X3Xd5gkKN3Jcd999N2vWrClRkwKUGONu06YNtWrVol+/fmzZsoVGjRpVdjNPysUXX+y+3rZtW7p160b9+vX56quvCAoK8mLLKsb777/PxRdfTEJCgvtYVX7/znb5+flcd911WJbF22+/XeK20aNHu6+3bdsWf39//vGPfzB27Ngqscz/9ddf777epk0b2rZtS6NGjZg9ezb9+vXzYssqxsSJExkyZAiBgYEljleV9/FYnw9nAg1Lnabo6Gh8fHxKVYInJycTHx/vpVZ5xqhRo/j555+ZNWsWderUOe653bp1A2Dz5s2V0TSPioyMpGnTpmzevJn4+Hjy8vJITU0tcU5VfT937NjB9OnTuf322497XlV+/wD3e3O8/4fx8fGlivwLCgo4dOhQlXlvXcFmx44dTJs2rUSvTVm6detGQUEB27dvr5wGeljDhg2Jjo52/7usDu+hyx9//MHGjRtP+H8Tzsz38VifD+X5HRofH1/m/1XXbZ6gcHOa/P396dSpEzNmzHAfczqdzJgxg+7du3uxZafOsixGjRrFd999x8yZM2nQoMEJ77Nq1SoAatWqVcGt87zMzEy2bNlCrVq16NSpE35+fiXez40bN7Jz584q+X5+8MEHxMbGcumllx73vKr8/gE0aNCA+Pj4Eu9beno6ixcvdr9v3bt3JzU1leXLl7vPmTlzJk6n0x3uzmSuYLNp0yamT59OzZo1T3ifVatWYbfbSw3lVBW7d+/m4MGD7n+XVf09LO7999+nU6dOtGvX7oTnnknv44k+H8rzO7R79+6sXr26RFB1hfWWLVt6rKFymr744gsrICDAmjRpkrVu3Tpr5MiRVmRkZIlK8KrkzjvvtCIiIqzZs2db+/btc39lZ2dblmVZmzdvtp555hlr2bJl1rZt26wffvjBatiwoXXuued6ueXl8+CDD1qzZ8+2tm3bZs2fP9/q37+/FR0dbaWkpFiWZVl33HGHVa9ePWvmzJnWsmXLrO7du1vdu3f3cqtPnsPhsOrVq2c9/PDDJY5X1fcvIyPDWrlypbVy5UoLsMaNG2etXLnSPVvohRdesCIjI60ffvjB+uuvv6xBgwZZDRo0sI4cOeJ+jIsuusjq0KGDtXjxYmvevHlWkyZNrBtuuMFbL6mE472+vLw86/LLL7fq1KljrVq1qsT/S9fskgULFlivvfaatWrVKmvLli3WJ598YsXExFi33HKLl19ZkeO9xoyMDGvMmDHWwoULrW3btlnTp0+3OnbsaDVp0sTKyclxP8aZ/B5a1on/nVqWZaWlpVnBwcHW22+/Xer+Z/r7eKLPB8s68e/QgoICq3Xr1taFF15orVq1ypo6daoVExNjPfroox5rp8KNh7zxxhtWvXr1LH9/f6tr167WokWLvN2kUwaU+fXBBx9YlmVZO3futM4991wrKirKCggIsBo3bmw99NBDVlpamncbXk6DBw+2atWqZfn7+1u1a9e2Bg8ebG3evNl9+5EjR6y77rrLqlGjhhUcHGxdeeWV1r59+7zY4lPz22+/WYC1cePGEser6vs3a9asMv9dDh061LIsMx388ccft+Li4qyAgACrX79+pV77wYMHrRtuuMEKDQ21wsPDreHDh1sZGRleeDWlHe/1bdu27Zj/L2fNmmVZlmUtX77c6tatmxUREWEFBgZaLVq0sJ5//vkSwcDbjvcas7OzrQsvvNCKiYmx/Pz8rPr161sjRowo9UfimfweWtaJ/51almW9++67VlBQkJWamlrq/mf6+3iizwfLKt/v0O3bt1sXX3yxFRQUZEVHR1sPPviglZ+f77F22gobKyIiIlItqOZGREREqhWFGxEREalWFG5ERESkWlG4ERERkWpF4UZERESqFYUbERERqVYUbkRERKRaUbgRkbPe7NmzsdlspfbDEZGqSeFGREREqhWFGxEREalWFG5ExOucTidjx46lQYMGBAUF0a5dO7755hugaMhoypQptG3blsDAQM455xzWrFlT4jG+/fZbWrVqRUBAAImJibz66qslbs/NzeXhhx+mbt26BAQE0LhxY95///0S5yxfvpzOnTsTHBxMjx492LhxY8W+cBGpEAo3IuJ1Y8eO5aOPPuKdd95h7dq1PPDAA9x0003MmTPHfc5DDz3Eq6++ytKlS4mJiWHgwIHk5+cDJpRcd911XH/99axevZqnnnqKxx9/nEmTJrnvf8stt/D555/z+uuvs379et59911CQ0NLtONf//oXr776KsuWLcPX15dbb721Ul6/iHiWNs4UEa/Kzc0lKiqK6dOn0717d/fx22+/nezsbEaOHMl5553HF198weDBgwE4dOgQderUYdKkSVx33XUMGTKE/fv38/vvv7vv/89//pMpU6awdu1a/v77b5o1a8a0adPo379/qTbMnj2b8847j+nTp9OvXz8AfvnlFy699FKOHDlCYGBgBf8URMST1HMjIl61efNmsrOzueCCCwgNDXV/ffTRR2zZssV9XvHgExUVRbNmzVi/fj0A69evp2fPniUet2fPnmzatAmHw8GqVavw8fGhT58+x21L27Zt3ddr1aoFQEpKymm/RhGpXL7eboCInN0yMzMBmDJlCrVr1y5xW0BAQImAc6qCgoLKdZ6fn5/7us1mA0w9kIhULeq5ERGvatmyJQEBAezcuZPGjRuX+Kpbt677vEWLFrmvHz58mL///psWLVoA0KJFC+bPn1/icefPn0/Tpk3x8fGhTZs2OJ3OEjU8IlJ9qedGRLwqLCyMMWPG8MADD+B0OunVqxdpaWnMnz+f8PBw6tevD8AzzzxDzZo1iYuL41//+hfR0dFcccUVADz44IN06dKFZ599lsGDB7Nw4ULefPNN3nrrLQASExMZOnQot956K6+//jrt2rVjx44dpKSkcN1113nrpYtIBVG4ERGve/bZZ4mJiWHs2LFs3bqVyMhIOnbsyGOPPeYeFnrhhRe477772LRpE+3bt+enn37C398fgI4dO/LVV1/xxBNP8Oyzz1KrVi2eeeYZhg0b5n6Ot99+m8cee4y77rqLgwcPUq9ePR577DFvvFwRqWCaLSUiZzTXTKbDhw8TGRnp7eaISBWgmhsRERGpVhRuREREpFrRsJSIiIhUK+q5ERERkWpF4UZERESqFYUbERERqVYUbkRERKRaUbgRERGRakXhRkRERKoVhRsRERGpVhRuREREpFpRuBEREZFq5f8B9POEsBthDPsAAAAASUVORK5CYII=", - "text/plain": [ - "<Figure size 640x480 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Save model\n", "import time\n", - "model.save(f\"./models/spam_keras_{time.time()}\")\n", + "hypermodel.save(f\"./models/spam_keras_{time.time()}\")\n", "\n", "# summarize history for accuracy\n", "plt.plot(history.history['loss'])\n", @@ -323,94 +331,9 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['Greg, can you call me back once you get this?', 'Congrats on your new iPhone! Click here to claim your prize...', 'Really like that new photo of you', 'Did you hear the news today? Terrible what has happened...', 'Attend this free COVID webinar today: Book your session now...', 'Are you coming to the party tonight?', 'Your parcel has gone missing', 'Do not forget to bring friends!', 'You have won a million dollars! Fill out your bank details here...', 'Looking forward to seeing you again', 'oh wow https://github.com/MGCodesandStats/tensorflow-nlp/blob/master/spam%20detection%20tensorflow%20v2.ipynb works really good on spam detection. Guess I go with that as the base model then lol :D', 'ayo', 'Almost all my spam is coming to my non-gmail address actually', 'Oh neat I think I found the sizing sweetspot for my data :D', 'would never click on buttons in gmail :D always expecting there to be a bug in gmail that allows js to grab your google credentials :D XSS via email lol. I am too scared for touching spam in gmail', 'back to cacophony ', 'Room version 11 when', 'skip 11 and go straight to 12', '100 events should clear out any events that might be causing a request to fail lol']\n", - "1/1 [==============================] - 0s 21ms/step\n", - "Message: \"Greg, can you call me back once you get this?\"\n", - "Likeliness of spam in percentage: 0.009471816010773182\n", - "\n", - "\n", - "Message: \"Congrats on your new iPhone! Click here to claim your prize...\"\n", - "Likeliness of spam in percentage: 1.0\n", - "\n", - "\n", - "Message: \"Really like that new photo of you\"\n", - "Likeliness of spam in percentage: 1.880475686277805e-08\n", - "\n", - "\n", - "Message: \"Did you hear the news today? Terrible what has happened...\"\n", - "Likeliness of spam in percentage: 5.586861107076402e-07\n", - "\n", - "\n", - "Message: \"Attend this free COVID webinar today: Book your session now...\"\n", - "Likeliness of spam in percentage: 0.9543323516845703\n", - "\n", - "\n", - "Message: \"Are you coming to the party tonight?\"\n", - "Likeliness of spam in percentage: 4.7180679502156764e-11\n", - "\n", - "\n", - "Message: \"Your parcel has gone missing\"\n", - "Likeliness of spam in percentage: 1.6956087165453937e-06\n", - "\n", - "\n", - "Message: \"Do not forget to bring friends!\"\n", - "Likeliness of spam in percentage: 1.8877132745842573e-08\n", - "\n", - "\n", - "Message: \"You have won a million dollars! Fill out your bank details here...\"\n", - "Likeliness of spam in percentage: 0.9749099612236023\n", - "\n", - "\n", - "Message: \"Looking forward to seeing you again\"\n", - "Likeliness of spam in percentage: 0.02266262285411358\n", - "\n", - "\n", - "Message: \"oh wow https://github.com/MGCodesandStats/tensorflow-nlp/blob/master/spam%20detection%20tensorflow%20v2.ipynb works really good on spam detection. Guess I go with that as the base model then lol :D\"\n", - "Likeliness of spam in percentage: 1.610198989242387e-20\n", - "\n", - "\n", - "Message: \"ayo\"\n", - "Likeliness of spam in percentage: 0.0022364065516740084\n", - "\n", - "\n", - "Message: \"Almost all my spam is coming to my non-gmail address actually\"\n", - "Likeliness of spam in percentage: 5.293677780858406e-19\n", - "\n", - "\n", - "Message: \"Oh neat I think I found the sizing sweetspot for my data :D\"\n", - "Likeliness of spam in percentage: 5.452191733402729e-16\n", - "\n", - "\n", - "Message: \"would never click on buttons in gmail :D always expecting there to be a bug in gmail that allows js to grab your google credentials :D XSS via email lol. I am too scared for touching spam in gmail\"\n", - "Likeliness of spam in percentage: 2.011877578043059e-18\n", - "\n", - "\n", - "Message: \"back to cacophony \"\n", - "Likeliness of spam in percentage: 0.6930281519889832\n", - "\n", - "\n", - "Message: \"Room version 11 when\"\n", - "Likeliness of spam in percentage: 4.439156597868532e-09\n", - "\n", - "\n", - "Message: \"skip 11 and go straight to 12\"\n", - "Likeliness of spam in percentage: 1.7528971341107535e-07\n", - "\n", - "\n", - "Message: \"100 events should clear out any events that might be causing a request to fail lol\"\n", - "Likeliness of spam in percentage: 5.269173430910712e-10\n", - "\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "# Use the model to predict whether a message is spam\n", "text_messages = ['Greg, can you call me back once you get this?',\n", @@ -433,7 +356,7 @@ " 'skip 11 and go straight to 12',\n", " '100 events should clear out any events that might be causing a request to fail lol']\n", "\n", - "print(text_messages)\n", + "#print(text_messages)\n", "\n", "# Create the sequences\n", "padding_type = 'post'\n", @@ -441,7 +364,7 @@ "fakes_padded = pad_sequences(\n", " sample_sequences, padding=padding_type, maxlen=max_length)\n", "\n", - "classes = model.predict(fakes_padded)\n", + "classes = hypermodel.predict(fakes_padded)\n", "\n", "# The closer the class is to 1, the more likely that the message is spam\n", "for x in range(len(text_messages)):\n", @@ -452,21 +375,9 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "<IPython.core.display.Image object>" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "tf.keras.utils.plot_model(model, rankdir=\"LR\", show_shapes=True)\n" ]