98年“后浪”科学家,首次挑战图片翻转不变性假设,一作拿下CVPR最佳论文提名...
出品 | AI科技大本营(ID:rgznai100)
刚刚结束的CVPR大会,总共收到6424篇论文中,仅有26篇获得最佳论文提名,占0.4%的比例。
其中,康奈尔大学大四学生林之秋,以第一作者身份提交的“Visual Chirality”(视觉手性)一文获得最佳论文提名,成为唯一一个还在本科阶段,年龄最小的第一作者获奖者。
论文中,林之秋等人首次挑战了常规神经网络训练中图片”翻转不变性“(flip-invariant) 的这一假设。这篇文章在多种领域(人脸,互联网图片,数字处理图像)上利用卷积神经网络发现了许多常人难以捕捉的”视觉手性“线索,并通过自监督训练在多项数据集上达到了60%甚至到90%的精度。
这次取得最佳论文提名并非偶然,实际上,林之秋的学霸光环从进入大学后一直很耀眼。
大一,他同时选修了计算机和数学两个专业,因为成绩极为优异,他受计算机系的邀请以助教身份给高年级同学讲课,还为康奈尔科技学院(Cornell Tech)的硕士生编写预修课程。
大二开始,他选修了博士课程,开始从事科研工作。到了大三,林之秋当上了机器学习高阶课程的助教,给博士生的期末试卷打分。
大学毕业,他的成绩在学院上千名学生中名列前三,被授予学院最高荣誉,并受院长邀请,代表学院在毕业典礼上举旗。
不过,学霸此次获得最佳论文提名并不像大学期末考试那样相对容易。林之秋提到,这个新课题光是训练神经网络和探索可解释性,就花了一年时间。而且,由于新课题往往充满了争议性,新课题也曾在另一个会议上被一个审稿人以“不够有新意”为理由拒稿。
当然,拒稿也给了他们更多时间把论文做得更完美。
文章链接:https://arxiv.org/abs/2006.09512
文章网站:visual-chirality.io
代码链接:https://github.com/linzhiqiu/digital_chirality
以下为“更完美的”论文内容详解:
神经网络训练需要大量标注数据,但数据又永远是有限的。为了用有限的标注数据来拟合函数,人们使用数据增强(data augmentation)的方法来低成本地获得更多的标记数据。
而镜像翻转则是最常用的图像数据增强方法之一。只需要将所有图片都进行一次镜像翻转,我们就相当于免费得到了双倍的数据。
但事情真的这么简单么?当我们翻转了数据集里所有的图片时,神经网络所拟合的函数还能代表原先的图像分布么?来自康奈尔大学研究员的「视觉手性(Visual Chirality)」这篇论文首次讨论了这一话题。
为了理解这一镜像翻转话题,我们先从一个小测试开始:
你能判断以下三张图片哪张被镜像翻转(水平翻转)了吗?
以下为答案:
图一:镜像翻转(线索:文字)。我们可以很容易看出来文字被翻转过了。
图二:没有翻转(线索:纽扣)。男士衬衫的纽扣一般位于身体右侧。
图三:镜像翻转(线索:吉他)。吉他手的主手应当在吉他右侧。
对于大部分的互联网图片来说(例如图二图三),镜像翻转对于人类而言并没有多少区别,因而难以判断。然而,神经网络却可以通过自监督训练的方法在这个任务上达到非常高的精度,并能指出图片中哪些区域可以被用于识别镜像翻转(以上三张图片利用了类激活映射(CAM)方法进行了高亮)。
康奈尔的研究人员将这一视觉现象定义为“视觉手性”(Visual Chirality)。
在化学等学科上,手性(Chirality)的定义为“一个物体无法与其镜像相重合”。这种不对称性在自然界大量存在,并在不同领域有着广泛的应用。
图注:手具有手性(Chiral),因为镜像翻转后无法与原图重合。而杯子是轴心对称,所以不具备手性。
手性(Chirality)代表着单个图片的翻转不对称性,而视觉手性(Visual Chirality)则是针对图像分布(Image Distribution)所定义的翻转不对称性。
假设一个图像分布中包含了右手和左手的照片(左右手的图片出现概率一致),那么此时,尽管每张图片都具有手性,这个图像分布却不具备视觉手性。这是由于左手镜像翻转后就和右手长的一样了。反之,假设一个图像分布中只存在右手不存在左手,那么这个分布就具备视觉手性(或称翻转不对称性),因为我们知道一张左手的照片必然为镜像翻转。
用统计学的术语来定义的话,假设有图像分布D,而其中一个图像是x,那么其在分布中出现概率是D(x)。我们将镜像翻转的操作称为T,而翻转图片x我们可以得到T(x)。
那么图像分布D具备视觉手性意味着:D中存在图片x,满足D(x)≠D(T(x))的条件。
如下图所示,假设我们有一个一维的分布(横轴上每个点都为一个元素),那么蓝色实线所代表的分布则具备视觉手性,因为和
分别与
和
的出现概率不一致:
当一个图像分布具备视觉手性时,使用镜像翻转作为数据增强方法将不可避免的改变一个数据集所代表的分布。换句话说,只有当一个图像分布不具备视觉手性的时候,我们才能在不改变原先图像分布的前提下,使用镜像翻转来增强数据集。
然而,视觉手性是大部分视觉领域都拥有的属性。正如此篇文章作者,谷歌AI科学家Noah Snavely教授所说:
“在计算机视觉的研究中,我们常把这个世界视为”翻转不变“的,镜像翻转因而是一个常规的数据增强方法。然而,当你翻转图片后,文字将被颠倒,左手变为右手,而螺旋意大利面也将朝相反方向旋转。”
为了挑战人们先前在计算机视觉中对于“翻转不变性”的假设,「视觉手性」这篇文章通过自监督训练在几个不同视觉领域验证了“视觉手性”的存在。
训练方法
「视觉手性」这篇文章利用了自监督学习(self-supervised learning)方法来训练卷积神经网络。对于任何一个数据集,只需要将其原有的图片标记为“无翻转”,并将镜像翻转过的图片标记为“有翻转”,即可训练神经网络识别镜像翻转这一二分类任务(binary classification)。同时我们可以根据神经网络在验证集(validation set)的表现上来评估这一图像分布是否具备视觉手性:如果验证集上的精度要显著大于50%,我们便有充足的证据来证明视觉手性的存在。
作者在这篇文章中利用了ResNet-50作为基本的网络结构,并使用SGD方法来训练网络。基于先前自监督学习方法的启发,作者将同一张图片的原图和翻转图放到了SGD的同一batch里(shared-batch training),加速了网络的训练。
为了了解神经网络学到了哪些视觉手性线索,作者利用了类激活映射(CAM:Class Activation Map)方法,在原有图片上对于视觉手性敏感的区域进行了高亮。同时因为能造成视觉手性的现象有很多,作者推出了一个简单的基于类激活映射的聚类方法:手性特征聚类(Chiral Feature Clustering)。
手性特征聚类方法
类激活映射方法本质上是对于神经网络最后一层卷积层输出的特征图(feature map)的加权线性和(linear weighted sum)。当我们假设神经网络是利用区域特征(local feature)来判断图像是否为镜像翻转时,我们可以将类激活映射(CAM)最强的区域视为神经网络最为关注的区域特征。只需要取最后一层卷积层输出的特征图上这一区域的特征,便可以利用传统的聚类方法例如K-means clustering进行自动分类。
ResNet-50最后一层卷积输出的特征图为一个(16x16x2048)的三维矢量f,而类激活映射所得到的热图(heatmap)为(16x16)的二维矢量A。假设热图上数值最大的点为(x*,y*),那么我们用来聚类的区域特征即为f(x*,y*)。
作者在多个不同图像分布上利用手性特征聚类方法对视觉手性现象进行了归因和讨论。
互联网图片集
在互联网图片集上,神经网络在镜像翻转识别上取得了高达60%-80%的精度。
作者着重分析了Instagram图片上的视觉手性现象。在不用随机剪裁(random cropping)时,神经网络在测试集上取得了高达92%的精度。然而因为有JPEG压缩失真的可能性存在(JPEG edge artifact一般出现于图片的边缘),作者同样使用随机剪裁进行了训练,并仍旧取得了高达80%的精度。考虑到大量Instagram图片有配文字,而文字是最明显的视觉手性现象,作者用文字识别器滤除了Instagram中含有文字的图片重新进行了训练,但仍旧在测试集上取得了74%的高精度。值得一提的是这些训练出来的模型具有一定程度的泛化能力,可以不经训练,在其他的互联网图片集(Flickr F100M)上取得高于50%的精度。
作者在Instagram图片集上进行了手性特征聚类,并挑选了一系列与我们生活相关的典型视觉手性现象进行讨论。
1、手机
对着镜子自拍是人们最爱做的事。此类照片具有视觉手性,因为手机的摄像头一般固定在手机背面的一侧(因品牌而异),同时由于多数人是右撇子,一般都以右手持手机进行自拍。
2、吉他
几乎大多数的吉他手都以右手拨弦,左手持把。
3、手表
手表一般都被带在人们的左手侧。
4、男士衬衫领子
男士衬衫的扣子一般处于右侧。
5、上衣口袋
正装上衣的口袋几乎无一例外处于身体左侧,为了更好地服务于占大多数的右撇子。
6、人脸
更令人吃惊的是,类激活映射方法在大量的人脸上出现了较强的反应,说明人脸中视觉手性的存在。多数情况下人脸通常被认为是对称的:此届CVPR 2020另一篇best student paper(Unsupervised Learning of Probably Symmetric Deformable 3D Objects from Images in the Wild)更是将人脸视为了轴心对称的物体,并以此为线索来进行3D重建。
需要强调的一点是,这些视觉手性现象在每张图片中看似孤立,但神经网络仍有可能会利用多种不同的线索来对图片是否翻转进行判断。
为了深入了解人脸的视觉手性现象,作者在人脸数据集上进行了孤立训练。
作者在Flickr-Faces-HQ (FFHQ)人脸数据集上进行了训练,并在测试集上取得了高达81%的精度,并利用手性特征聚类对人脸中的视觉手性现象进行了初步的探讨:
1)刘海分界处
人们一般用右手来分理刘海,这会导致刘海的朝向向一侧偏移,并出现视觉手性现象。
2)眼睛
人们在看向物体时倾向于用一只主视眼进行瞄准,这样会导致人们的目光在进行拍摄时出现偏移。多数人的主视眼为右眼,而这一现象可能是导致视觉手性现象的成因。
3)胡子
与头发一样,可能与人们习惯于用右手理胡子有关。
作者提到,文中对以上的视觉手性现象的讨论均为初步的分析,而人脸中仍有大量的视觉手性线索值得被发掘。
数字图像处理
作者对数字图像处理过程,例如去马赛克(最常见为Bayer Demosaicing)和图片压缩(最常见为JPEG Compression)过程中产生的视觉手性现象进行了分析。举个例子,当作者首次利用神经网络在Instagram数据集上进行自监督训练时,发现没有使用随机剪裁(random cropping)的神经网络尽管精度更高(在测试集上高达92%),但在部分图片上,类激活映射所得到的热图更着重关注图片的边缘部分,如左下图所示:
而在使用随机剪裁之后,我们得到的新的热图则更关注来自于图片中物体本身的线索(例如右图的衬衫领子)。作者推断这是由于Instagram的图片均为JPEG格式,经过了JPEG图像压缩这一数字图像处理方式。JPEG压缩的算法是在图片上对于每16乘16的像素格进行分别处理的,而对于不能被16整除的图片,其边缘会用统一方式进行处理(例如重复边缘像素)。这会导致JPEG压缩的图片的边缘失真(edge artifact),从而导致了视觉手性现象。
作者通过概率论与群论(group theory)对数字图像处理过程产生的视觉手性现象进行了数学论证,并通过神经网络实验验证了这一现象在互联网图片中广泛存在。而此类的线索往往不能被肉眼可见,却在图片中存在固定的模式,因而为图像识伪的应用创造了可能性。
由于文中的证明和实验过程较为复杂,此处我们先给出数学定义和最重要的几点结论。
定义
D为数据集所来源于的图像分布。
T为一个图像变换函数,例如镜像翻转。需要注意的是论文中的证明不仅限于镜像翻转,也可以被用于任何具备结合律(associativitive)和可逆性(invertible)的变换。
J为一个图像处理函数。例如去马赛克以及JPEG图片压缩。
为经过J处理后所得到的的新图像分布。
我们沿用之前对视觉手性的定义。
对于任意图片x,如果D(x)= D(T(x)),那么D不具备视觉手性。
对于任何经过数字图像处理的图片y,如果,那么
同样不具备视觉手性。
文中最重要的结论是:当图像变换函数T和图像处理函数J具备交换律(commutative property)时,如果原先的图像分布D没有视觉手性,经过数字图像处理后的分布也不具备视觉手性。换句话说,我们可以通过检查T和J的交换律,来判断数字图像处理能否造成视觉手性现象。
作者在论文中主要涉及了两种最常见的图像处理方式:
去马赛克(Demosaicing):数字相机的感光元件一般只能在每个像素格上捕捉RGB中的其中一种颜色,而其中最常用的为贝尔滤色镜(Bayer Color Filter Array),如下图所示。去马赛克则是将感光元件得到的二维图像还原为三维全彩的这一过程。
JPEG压缩算法(JPEG Compression):JPEG是一种有损的图像压缩方式,被广泛应用在如今大量的互联网图片上。一般以每16乘16的像素格为单位通过色彩空间变换,缩减像素采样,离散余弦变换等步骤来进行图片编码压缩。
结论
去马赛克或JPEG压缩算法单独使用时,会在特定的图片大小产生视觉手性现象。对于去马赛克,由于贝尔滤色镜为2乘2的像素格,且滤色镜本身不对称(参考上图绿红蓝绿的排序),任何能被2整除的图片宽度均会导致视觉手性。对于JPEG压缩,任何不被16整除的图片宽度均会导致视觉手性。这意味着,当去马赛克和JPEG压缩被共同使用时,任意宽度的图片都将产生视觉手性,因为同时满足不被2整除和能被16整除的数字不存在。
当使用随机剪裁(random cropping)时,去马赛克或JPEG压缩单独使用并不产生视觉手性现象。
当使用随机剪裁(random cropping)时,去马赛克和JPEG压缩同时使用将会产生视觉手性现象。这意味着互联网图片中可能存在大量有规律的,肉眼不可见的视觉手性线索,而人们将能够利用这类线索来进行图片识伪。
证明
那下面我们进入证明部分(读者需要对群论(Group Theory)有一定基础):
文中最重要的证明为附加材料中的命题3:
命题3:当原图像分布D不具备视觉手性时,如果图像处理函数J与图像变换函数T具备交换律,则经J处理后的图像分布也不具备视觉手性。
证明:
由于T具备可逆性和分配律,T可以将原分布中的图片分为一个个不相交的循环群(disjoint cyclic groups)。
即为一个循环群,而这个循环群的单位元(identity element)可以选这个集合里面任意一个元素。这些循环群的群运算(group operation)可以被定义如下:
每个循环群的阶(order of group)由T以及其中的元素决定。举个例子,如果T为镜像翻转,那么对于一张对称的照片,其所在群的阶为1
。对于不对称的一张照片
,其所在群的阶为2
。
经过图像处理后,每个循环群将变化为
:
命题3里,我们假设T和J具备交换律,那么我们可以将上面的公式改写,并得到:
原分布D不具备视觉手性意味着:每个循环群中的元素都有相同的概率出现。因此,由于经过J图像处理后循环群变为了
,我们只需要证明以下运算为同态(homomorphism):
因为对于同态来说,根据第一同构基本定理(First Isomorphism Theorm)可以推理出每个输出对应着相同数量的输入。而因为每个循环群中单个输入在原分布D上有着相同的概率,意味着每个输出
也具备相同的概率,也意味着
不具备视觉手性。
证明同态的步骤如下:
以上为命题3的证明。
通过命题3,我们知道了J和T的交换律与处理后图像分布的视觉手性的关系。那么,只需要通过检查交换律,我们便可以判断图像处理是否可能产生新的视觉手性。检查的方式也很简单,对于任意图片x,我们只需要计算其交换残差(commutative residual)是否为0:
下图形象的解释了交换残差的计算过程:
文中使用去马赛克、JPEG压缩、以及两者结合这三种图像处理方法,对于镜像翻转这一图片变换方式分别计算了交换残差。
当去马赛克处理的图像宽度为奇数时,处理后的图像分布可能具备视觉手性;反之如果为偶数,则不具备视觉手性。当JPEG压缩的图片不为16整除时,处理后的图像分布可能具备视觉手性,反之则不具备。当两者结合后,处理后的图片一定具备视觉手性:
作者为了验证这些结论,在原本不具备视觉手性的人工数据集(高斯分布生成的随机图片)上,对不同宽度的图片分别进行了这三种处理,并使用神经网络进行了自监督学习。实验结果符合这一测试的预期。因为大量互联网图片都经过了去马赛克和JPEG压缩,这一结论意味着数字图像处理所带来的视觉手性现象在互联网图片中广泛存在。
当加入随机剪裁(random cropping)后,我们还能得到这一结论么?作者的答复是肯定的。
为了理解随机剪裁对于视觉手性的影响,作者提到了两个关键点。
第一点:命题三中只讨论了单种J的情况。而随机剪裁可以被视为许多种J(例如是向右平移一格并剪裁,
是向右平移两个并剪裁)的结合,每一种有相同概率出现。
第二点:命题三中并没有讨论T和J不具备交换律的情况。例如当J是向将图片右平移十个像素并进行一次中心剪裁时,T和J无法具备交换律。在这种情况下,新的图像分布并不一定具备视觉手性。
对于第一点来说,假设我们有多种不同的J(例如,
,
),而他们分别与T具备交换律时,我们可以用以下公式表达新的图像分布:
我们可以很容易看出,当每一个单独的J都和T具备交换律时,我们可以分别应用命题三,来证明每一个J产生的新图像分布不具备视觉手性。而当我们将这些不具备视觉手性的新图像分布加权求和的时候(公式20),我们得到的新图像分布仍旧不具备视觉手性。
对于第二点来说,即便每个单独的J都不和T具备交换律时,我们仍可以找到新的图像分布不具备视觉手性的情况。为了理解这一点,作者引入了一个新的概念”排列交换律”(Permuted Commutativity),如下图所示:
在这个例子中,作者假设,
,
)单独并不和T具备交换律,但在一种打乱的排列下具备交换性,如图中不同颜色的箭头所示。这种排列带来的交换律的关系可以用以下公式表达(a和b为排列中的序号)。
在这个情况下,每一条箭头都能满足命题三中的条件,因此他们的加权和仍旧不具备视觉手性。
作者将这种具备”排列交换律“的情况形象得称为”平移交换律“(Glide Commutativity),因为这类视觉现象在自然界广泛存在。例如人类的足迹,经过平移之后仍旧是对称的:
那么如何检验这种”平移交换律“的存在呢?作者针对随机剪裁提出了一个简单的平移交换律测试(Glide Commutativity Test):
假设一种平移(例如左移五个像素)为Φ,测试步骤如下:
首先将任意图片x进行填充,并确保边缘足够大。
将填充后的图片进行Φ平移。
通过先后运算T和J,得到两种图片:
和
将这两个图片用T(-Φ)平移回原处。
将这两个图片多余的填充像素剪裁掉。
而平移交换律测试只需要对任意两种平移方式(和
)检查以下残差是否为0:
作者对去马赛克,JPEG压缩,以及两者结合这三种图像处理方式进行了测试。测试结果为:当去马赛克和JPEG压缩单独使用时,经过随机剪裁后的分布具备平移交换律(如下图1和2中的黑色格子),所以一定不具备视觉手性。而当两者结合时,平移交换律就消失了,同时可能产生视觉手性。
作者同样利用人造数据集进行了神经网络训练,并验证了这一测试的结果。这意味着对于大量的互联网图片,由于它们都经过了去马赛克和JPEG压缩,即便我们使用了随机剪裁,仍然有可能观察到视觉手性。也就是说,数字图像处理所导致的视觉手性现象可能大量存在于互联网图片之中,并且这类线索可能存在于任意图片区域。这类线索在互联网图片中可能肉眼不可见,却能被神经网络捕捉到。这也为图片识伪(image forensic)提供了新的可能性。
结论
「视觉手性」这篇文章首次挑战了神经网络训练中对于图片”翻转不变性“的假设,并在多种不同的视觉分布上发现了”视觉手性“的线索。这篇文章对于未来的数据增强和图片识伪方法将有很大的指导意义。
推荐阅读
认知智能,AI的下一个十年 | AI Procon 202
用 Python 可以实现侧脸转正脸?我也要试一下!
周志华教授力作,豆瓣10分好评,集成学习如何破解AI实践难题 | 赠书
业界首发|云原生领域首本架构白皮书重磅发布
观点 | 以太坊客户端多样性问题从何而来?
相关文章:

MySQL导入导出数据和结构
1. mysql导出数据和结构使用mysqldump命令1.1 导出全库连带数据mysqldump -u root -p app_test > app_test.sql1.2 导出指定的表,table1连带数据mysqldump -u root -p app_test table1 > app_test_table1.sql1.3 导出多张表,table1,tab…
图表君聊docker-仓库
图表君聊docker-仓库 今天我们来继续聊docker,上篇文章我们介绍了docker里的Container.今天来继续三大概念中的最后一个--仓库(Repository)。 当我做好了一个Image,我该怎么和其他人分享呢?答案很简单,把他push到一个仓…

正则表达式经典教程
作者:ET Dreams http://blog.csdn.net/etmonitor/Regular Expressions (1) ---- What is Regular Expressions?正则表达式是常见常忘,所以还是记下来比较保险,于是就有了这篇笔记。希望对大家会有所帮助。J1.什么是正则表达式...…
发布了!2020年AI人才发展报告,最高补助1000万!
最近,程序员届有一个重大好消息,可能很多人还不知道,那就是:国内某些城市已经开始程序员人才补贴了!对于人工智能公司的项目开发、人才引进、科技研发,最高按照国拨经费的30%给予配套支持,单个项…

C++资源之不完全导引(上)
发信人: NULLNULL (空空), 信区: VC标 题: C资源之不完全导引(转载)发信站: 武汉白云黄鹤站 (2005年05月05日01:42:54 星期四), 站内信件C资源之不完全导引(完整版)来源:www.csdn.net-----------------------------------------------------…

HDU 4467 分块
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid4467 题意:给定n个点m条边的无向图,点被染色(黑0/白1),边带边权。然后q个询问。询问分为两种: Change u:把点u的颜色反转(黑变白,白变黑),…

ASP.NET重用代码技术 - 代码绑定技术
作者: 苏红超 导读 代码绑定是ASP.NET提供的一个重要的新技术。本文将会为您展示如何利用代码绑定技术来实现Web页面表示层和商业逻辑代码的分离,并建议您使用代码绑定技术实现代码的可重用。在接下来的另外一篇文章当中,我们会给出另外…

【ZooKeeper Notes 3】ZooKeeper Java API 使用样例
查看PDF版本 转载请注明:ni掌柜 nileadergmail.com ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务框架,包含一组简单的原语集合。通过这些原语言的组合使用,能够帮助我们解决更高层次的分布式问题,关于Zo…
一站式了解多模态、金融、事理知识图谱构建指南 | AI ProCon 2020
整理 | 许爱艳出品 | AI科技大本营(ID:rgznai100)【导读】7 月 3-4 日,由 CSDN 主办的第三届 AI 开发者大会(AI ProCon 2020)在线上举行。本次大会有超万人报名参与,参与人群覆盖 60 领域、5000…

CentOS7安装配置redis-3.0.0
一.安装必要包 yum install gcc 二.linux下安装 #下载 wget http://download.redis.io/releases/redis-3.0.0.tar.gz tar zxvf redis-3.0.0.tar.gz cd redis-3.0.0 #如果不加参数,linux下会报错 make MALLOClibc 安装好之后,启动文件 #启动redis src/redis-server &#关闭re…

ASP.NET重用代码技术 - 用户控件技术
作者: 苏红超 使用ASP.NET中的代码绑定技术来使得代码重用变得简单可行。我们发现,利用代码绑定技术我们可以容易的将我们的代码和内容分离开来,利用它可以建立可重用的代码,只是这种技术本身也存在着一些局限性。在本文中&…

liunx 下dhcp中继及服务器配置
dhcp:动态主机配置协议 使用udp协议 端口为67(服务),68(客户) 作用:动态分配地址等参数 工作模式 1. 手工 manual server—地址池 (ip—mac) 2222----1.1.1.1 dhcpclient ------地址…
PyCharm vs VSCode,是时候改变你的 IDE 了!
作者 | Sohaib Ahmad译者 | 鹿未来,责编 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN(ID:CSDNnews)也许是我有些落伍,或者也是因为JetBrains在Python IDE的市场上占有很大的份额,以至于直到最近我才发现&a…

(转)Linux 下 查看以及修改文件权限
场景:Linux环境下远程部署项目,发现因为文件权限问题,不能执行远端的可执行文件。问题还没解决,待议。。。 1 查看权限 在终端输入: ls -l xxx.xxx (xxx.xxx是文件名) 那么就会出现相类似的信息&#…

软件文档知多少?
作者:由于本人在无数网站看到此文 无法确定第一作者 请作者与本人联系如今,软件开发越来越复杂,软件功能也越来越丰富。而几乎所有成熟的商业软件,都是靠一个开发团队齐心协力的血汗结晶。“罗马不是一天建成的!”&…

在 VMware ESXi 5.0 上安装万兆网卡驱动
2012年02月28日 | 标签: vmware esxi | 作者:vpsee 转载自:http://www.vpsee.com/2012/02/intall-network-card-driver-on-vmware-esxi-5-0/ 昨天刚发现新购的 Dell PowerEdge R710 服务器上配的 Intel Ethernet Server Adapter X520-T2 万兆网卡居然在…
漫谈 ClickHouse 在实时分析系统中的定位与作用
ClickHouse 是一款由俄罗斯Yandex公司开源的OLAP数据库,拥有着卓越的性能表现,在官方公布的基准测试中,ClickHouse的平均响应速度是Vertica的2.63倍、InfiniDB的17倍、MonetDB的27倍、Hive的126倍、MySQL的429倍以及Greenplum的10倍。自2016年…

Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
作者:lshdic http://blog.csdn.net/lshdic/<HTML> <HEAD> <META http-equivContent-Type contenttext/html;charsetgb2312> <META nameGemeratpr content网络程序员伴侣(Lshdic)2005_开拓版> <TITLE>LD5工具</TITLE> <st…
残差网络的前世今生与原理 | 赠书
本文内容节选自《深度学习之模型设计:核心算法与案例实践》,作者言有三。本书详解了数十年来深层卷积神经网络模型的主流设计思想,理论讲解细致,实战案例丰富,是熟练掌握深度学习模型使用的必备参考资料。想要了解关于…

python---简单数据库
2019独角兽企业重金招聘Python工程师标准>>> #simple database#people people {Alice:{phone:2341,addr:Foo drive 23},Beth:{phone:9102,addr:Bar street 42},Ceil:{phone:3158,addr:Baz avenue 90} }#describe labels {phone:phone number,addr:address }name …

Linux系统之路——如何在CentOS7.2安装MySQL
一、Mysql 各个版本区别:1、MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。2、MySQL Enterprise Edition 企业版本,需付费,可以试用30天。3、MySQL Cluster 集群版,开源免费。可将几个M…

Vml+Dhtml:制作一个应用渐变颜色效果不错的进度条
//原作:风云舞,载自: http://www.lshdic.com/bbs<HTML xmlns:v> <HEAD> <META http-equivContent-Type contenttext/html;charsetgb2312> <Meta nameGemeratpr content网络程序员伴侣(Lshdic)2004> <TITLE>效果不错的VML进度条</TITLE> &l…

使用inno setup打包程序完整脚本(.net框架检测,重复安装检测)
; 脚本由 Inno Setup 脚本向导 生成!; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!#define MyAppName "小小鸟软件"#define MyAppVersion "2012.2.29"#define MyAppPublisher "小小鸟科技"#define MyAppURL &…
GPT-3到来,程序员会被AI取代吗?
作者 | Frederik Bussler译者 | 弯月,编辑 | 屠敏题图 | 自东方 IC出品 | AI科技大本营(ID:rgznai100)2017年的时候,曾有研究人员问:到2040年人工智能是否承担起大多数的编程工作?如今OpenAI的G…

iOS开发几年了,你清楚OC中的这些东西么!!!?
iOS开发几年了,你清楚OC中的这些东西么!!!? 前言几年前笔者是使用Objective-C进行iOS开发, 不过在两年前Apple发布swift的时候,就开始了swift的学习, 在swift1.2发布后就正式并且一直都使用了swift进行iOS的开发了, 之后就是对swift持续不断的学习, 近来swift3.0的发布, 更多的…

在做会员资料修改时,实现下拉菜单的默认项定位
作者:lshdic http://blog.csdn.net/lshdic/ <!--在写一个交友网站时碰到的问题,就是当会员修改资料时,如何定位SELECT的菜单列默认项,不过很容易就解决了--> <HTML> <HEAD> <META http-equivContent-Type contenttex…

NFS 文件共享的创建过程
nfs 文件共享的服务器 nfs服务需要两个软件包nfs-utils和portmap 启动nfs服务 # service portmap start # service nfs start # chkconfig nfs on 开机自动启动 配置文件: /etc/exports 想要共享某个文件则编辑配置文件 共享目录 共享IP(共享属性&…
行业新风向!AI人才缺口30万,单个项目最高补贴1000万元!
最近,程序员届有一个重大好消息,可能很多人还不知道,那就是:国内某些城市已经开始程序员人才补贴了!对于人工智能公司的项目开发、人才引进、科技研发,最高按照国拨经费的30%给予配套支持,单个项…

Robotium todolist.test.elements
2019独角兽企业重金招聘Python工程师标准>>> ElementsEditToDoItemActivity package com.example.todolist.test.elements;import android.widget.Button; import android.widget.EditText;import com.example.todolist.R; import com.robotium.solo.Solo;public cl…

经典的导航二级式导航菜单增强版
作者:lshdic http://blog.csdn.net/lshdic/<!--呵呵我发的上一版相信大家都看过了吧,想一想上一版的确是不怎么华丽,而且上一版是针对表格内的连接A而定位的而这一版的优点显然比上一版要华丽,速度一样快,而且是针…