Adversarial Attack Strength to Model Robustness Converter

Adversarial Attack Strength to Model Robustness Converter

Select model type, attack type, enter attack strength (ε), and convert to robustness metrics.

Attack Type: ${attack.toUpperCase()}

Attack Strength (ε): ${epsilon.toFixed(3)}

Robustness Metrics:

Adversarial Accuracy: ${(adversarialAccuracy * 100).toFixed(2)}%

Empirical Robustness: ${empiricalRobustness.toFixed(3)}

`; resultSection.innerHTML = resultText; resultSection.style.display = 'block'; pdfButton.disabled = false; }; // PDF download logic const downloadPDF = () => { if (!currentResults.model || !resultSection.innerText) { errorMessage.textContent = 'No results available to download.'; errorMessage.style.display = 'block'; return; } try { const { jsPDF } = window.jspdf; if (!jsPDF) { console.error('jsPDF is not loaded.'); errorMessage.textContent = 'PDF generation failed. Please try again.'; errorMessage.style.display = 'block'; return; } const doc = new jsPDF(); doc.setFont('helvetica', 'bold'); doc.setFontSize(16); doc.text('Adversarial Robustness Converter', 20, 20); doc.setLineWidth(0.5); doc.line(20, 25, 190, 25); doc.setFont('helvetica', 'normal'); doc.setFontSize(12); doc.text(`Model Type: ${currentResults.model.toUpperCase()}`, 20, 40); doc.text(`Attack Type: ${currentResults.attack.toUpperCase()}`, 20, 50); doc.text(`Attack Strength (ε): ${currentResults.epsilon.toFixed(3)}`, 20, 60); doc.text('Robustness Metrics:', 20, 70); doc.text(`Adversarial Accuracy: ${(currentResults.adversarialAccuracy * 100).toFixed(2)}%`, 20, 80); doc.text(`Empirical Robustness: ${currentResults.empiricalRobustness.toFixed(3)}`, 20, 90); doc.setDrawColor(200); doc.rect(15, 35, 180, 60); doc.save('adversarial_robustness.pdf'); } catch (error) { console.error('PDF generation error:', error); errorMessage.textContent = 'Failed to generate PDF. Please try again.'; errorMessage.style.display = 'block'; } }; // Reset form logic const resetForm = () => { converterForm.reset(); resultSection.innerHTML = ''; resultSection.style.display = 'none'; errorMessage.style.display = 'none'; pdfButton.disabled = true; currentResults = { model: '', attack: '', epsilon: 0, adversarialAccuracy: 0, empiricalRobustness: 0 }; modelType.focus(); }; // Event listeners convertButton.addEventListener('click', convertRobustness); resetButton.addEventListener('click', resetForm); pdfButton.addEventListener('click', downloadPDF); // Form submission via Enter key converterForm.addEventListener('submit', (e) => { e.preventDefault(); convertRobustness(); }); }); })();
Scroll to Top