安全是有分量的

DDOS高防服务_服务器防火墙的配置与管理_精准

2022-01-11 19:30栏目:创投界

DDOS高防服务_服务器防火墙的配置与管理_精准

我对系统故障和奇怪现象很着迷,特别是当系统在正常条件下运行时。不久前,我看到伊恩·古德费罗的一张幻灯片,让我笑了。将随机噪声输入预先训练好的网络中,网络将噪声作为已知对象进行分类。这就引出了几个问题。不同的预训练网络会看到相同的东西吗?不同的东西?百分之几的时间?网络中随机噪声是一个特定对象的最高置信度是多少?除了这些问题之外,神经网络真正"看到"的是什么?

这篇文章和相关的代码是我对这些意想不到的结果好奇的结果。幸运的是,PyTorch使这样的实验变得容易。为了可视化为什么网络会以某种方式对对象进行分类,我们将使用Captum一个模型解释性框架。完整的代码可以在下面的Github存储库中看到。

相关性

在我们开始之前,您可能想知道为什么这些都是相关的。在许多情况下,开发人员不是从头开始构建模型。他们正在从一个模型动物园获得框架和预先训练的网络作为出发点。此活动节省了时间,因为您不需要收集数据和进行初始培训的腿部工作。然而,这也意味着意想不到的问题会在陌生的地方突然出现。根据模型的用途和功能,这可能会对安全性和安全性产生影响。

预训练模型

预训练模型易于实例化,高防cdn有免费的吗,并允许您快速将数据发送给它们进行分类。使用这些模型,您不必指定模型定义或对它们执行培训,这是为您提前完成的,这意味着它们在您实例化之后就可以使用了。Torchvision库中预先训练的模型在由1000个类别组成的Imagenet数据集上进行训练。这里要记住的是,这个训练是针对图像中的单个对象,而不是包含多个对象的复杂图像,这会产生一些有趣的结果,但这是另一个时间的主题。从PyTorch的Torchvision库中提取预先训练过的模型很容易。这是一个导入所选模型的问题,其中pretrained参数设置为True。我还将模型设置为评估模式,因为在这些测试过程中不会发生任何训练,只是推断。

首先,我有一行代码,根据GPU是否可用,将设备设置为cuda或cpu。这些简单的测试不需要GPU,但由于我的机器中有一个GPU,所以我使用它。

1device="cuda"if torch.cuda.is\u available()else"cpu"

1234导入torchvision.models as modelsvgg16=models.vgg16(pretrained=True)vgg16.eval()vgg16.to(device)

此处提供了torchvision pretrained模型的列表。在我的测试中,我不想使用所有预先训练好的网络,因为那样会太多。我选择了以下5个网络

vgg16resnet18公司亚历克斯内特登塞内《盗梦空间》

我在选择这些网络时没有采用任何特定的方法。Vgg16和Inception在示例中使用得比较多,它们都是不同的,这是最大的影响因素。

生成含噪图像

我们需要一种自动生成含噪图像的方法,我们可以为神经网络提供反馈。对于这个任务,我使用了Numpy和PIL库的组合,并编写了一个小函数来返回包含随机噪声的图像。

12345678将Numpy作为npfrom PIL import image def gen\u image():image=(np.random.standard\u normal([256,256,3])*255).astype(np.uint8)im=Image.fromarray(Image)return im

这个函数的结果是一个像下面这样的图像。

变换图像

接下来我们要对噪声进行图像变换,将其转换成张量,并对其进行规格化。以下代码不仅用于我们的随机噪声,也用于我们可能要输入到预先训练的网络中进行测试的任何其他图像(因此调整大小和中心裁剪值)。

123456789101112def xform_image(image):transform=transforms.Compose([transforms.Resize(256)),transforms.CenterCrop(224),transforms.ToTensor(),transforms.Normalize([0.485,0.456,0.406],[0.229,0.224,0.225])])new_image=transform(image).to(device)new_image=new_image.unsqueze_0)return new_image

Getting Predictions

一旦我们有了转换后的图像,从实例化的模型中很容易得到预测。在本例中,我们假设来自xform\u image函数的返回称为image\u xform。在我用于测试的代码中,我将这些函数分解为两个不同的函数,安全狗2016无法防御cc攻击,但是为了简单起见,高防免费cdn1001无标题,我将在这里把它们放在一起。基本上,我们将转换后的图像送入网络,有效的DDos防御,通过softmax函数运行结果,使用topk函数检索分数,并预测单个顶部结果的标签ID.

1234 with torch.no_grad():vgg16_res=vgg16(image_xform)vgg16_output=F.softmax(vgg16_res,dim=1)vgg16分数,pred\u label\u idx=torch.topk(vgg16\u output,多服务器防御ddos,1)

Results

那么,现在我们已经基本了解了如何生成这些噪声图像并将它们输入预先训练的网络,结果是什么?在这个测试中,我决定生成1000张噪声图像,通过5个预先训练好的网络运行它们,并将它们放入一个熊猫数据框中进行快速分析。结果很有趣,有点出乎意料resnet18公司亚历克斯内特登塞内开端计数10001000100010001000意思是0.2269780.3282490.1472890.4094130.020204标准0.0679720.0718080.0386280.1483150.016490最小0.0749220.1279530.0610190.1391610.00596325%0.1782400.2788300.1205680.2910420.01164150%0.2236230.3241110.1430900.3877050.01588075%0.2705470.3733250.1711390.5113570.022519最大值0.4380110.5805590.3285680.8680250.198698不同预训练网络的噪声结果