6 黄飞

软件工程师

我要认证

你只管努力,剩下的交给时光!

等级
TA的排名 3k+

SQL 知识点回顾总结(二)

本文在上篇博客 SQL 知识点回顾总结(一)的基础上,再结合《SQL 必知必会》一书对 SQL 相关知识点进行了补充整理,供大家参考,也方便自己查阅备忘。在指定一条 order by 子句时,应该保证它是 select 语句中最后一条子句。如果它不是最后的子句,将会出现错误信息。通常,order by 子句中使用的列将是为显示而选择的列。但是实际上并不一定要这样,用非检索的列排序数据是完全合...

2020-03-12 20:31:36

SQL 知识点回顾总结(一)

很久没有更新博客了,埋头工作有时候都忘了思考,但学习积累的步伐不能停止,今儿个把 SQL 相关知识点重新捡起来,供大家参考,也方便自己查阅备忘。梳理的主线主要基于牛客网《数据库SQL实战》。1. left join, right join 和 inner joinleft join(左联接):返回包括左表中的所有记录和右表中联结字段相等的记录;right join(右联接):返回包括右表中的...

2020-02-03 18:00:16

XCTest 单元测试初探

在做 iOS 端的单元测试时,XCode 自身集成的 XCTest 框架是一个不错的选择。网络上关于 XCTest 单元测试的文章不胜枚举,这里主要结合实例和 WWDC2018 的新增特性进行总结和梳理。本文只针对 iOS 单元测试,UI自动化测试会在以后的博文中陆续展开,下面直接从 Demo 入手。在创建好工程后(勾选上"Include Unit Tests"),会在 XCTests.m 中...

2019-10-08 13:04:55

iOS 单例模式,你真的写对了吗?

几年前,笔者曾对 iOS 单例模式作过一番阐述,包括其优点以及 Apple 自身对单例模式的实现示例,详情可参考:iOS 单例模式详解。这里再做一个简短的总结,单例的用处:主要用在封装网络请求,播放器,存放常用数据等。单例的特点:只初始化一次,生命周期和程序的生命周期相同,访问方便。下面一步一步以循序渐进的方式来将单例模式完善化。为了多线程安全,用 GCD 创建单例更加方便,由于 dispa...

2019-04-28 16:11:56

caffe 改动后的重新编译以及 pycaffe 安装过程中 warnings 解决

原生的 caffe 包含了一些基本的运算操作,如果要进行一些自定义操作,比如双线性插值放缩操作、L2 正则化等就需要把相应的实现添加进 caffe 源码,由于 caffe 源码由 C++ 编写,修改源码后需要重新编译。下面对具体的编译过程进行总结:1. 编译 caffe.proto 文件添加层时,需要在 /src/caffe/proto/caffe.proto 文件中注册,因为修改过 caff...

2018-10-31 19:32:18

GoogLeNet(Inception V1)总结

本文是对 “Going Deeper With Convolution” 的论文创新点的解读和总结,笔者在去年对该论文进行了全文翻译,原文翻译可点传送门:《Going Deeper With Convolution》全文译解,但当时仅限于翻译,并未对其中细节和创新点进行详细剖析。经典的东西需要细细品味,本文主要解读该论文的新点,也即 GoogLeNet 的网络结构。该论文发表于 CVPR 201...

2018-10-26 11:07:04

Network In Network 总结

本文是对《Network In Network》的论文解读和总结。该论文发表于 ICLR 2014,由新加坡国立大学(NUS)提出,自2014年发表至今,已有接近2K的引用量,其独特的网络结构成为卷积神经网络的革新,是经典的卷积神经网络的一个变种。注:博文中图片表格均来自原文1. 网络结构1.1 MLP卷积层NIN 具体在传统的卷积层上采用了大小为[1,1]的卷积核去替代,相当于进行了一...

2018-10-24 20:47:38

Linux 下几个查找命令 find,locate,whereis,which,type 总结

在 Linux 命令行下,常常根据需要进行相应文件的查找,有很多方法可以做到这一点,本次博客对这些方法进行一个总结,可根据需要灵活运用。1. findfind 是最常见也是最强大的查找命令,几乎能满足任何查找需求。find 命令使用格式:find 路径 参数时间查找参数:-atime n :将 n*24小时内存取过的的文件列出来-ctime n :将 n*24小时内改变、新增的文件...

2018-10-18 17:43:34

操作系统与网络知识点梳理

1.死锁产生的原因与避免死锁的方法死锁概念:多个线程因竞争资源而造成的一种僵局(互相等待)状态。 产生死锁的四个条件: (1)互斥条件:资源只能由一个进程使用; (2)请求与保持条件:已经得到资源的进程可以再次申请新的资源; (3)非剥夺条件:已经分配的资源不能从相应的进程中被强制地剥夺; (4)循环等待条件:系统中若干进程组成环路,该环路中每个进程都在等待相邻进程正占用的资源。 ...

2018-09-12 10:02:34

HTTP 状态码回顾总结

HTTP状态码,它是用以表示网页服务器HTTP响应状态的3位数字代码。状态码的第一个数字代表了响应的五种状态之一。 Tables Are Cool 1XX Informational(信息性状态码) 接收的请求正在处理 2XX Success(成功状态码) 请求正常处理完毕 3XX 重定向状态码 需要进行附加操作以完成请求...

2018-09-07 10:02:21

从输入URL到页面展示到底发生了什么?

这是一个老生常谈的问题,笔者今天对这个问题进行一个总结。整个过程可分为4个步骤,分别如下所示:1. 域名解析当我们在浏览器的输入框中输入网址的时候,浏览器其实已经在智能地匹配可能的URL了,它会从历史或者书签等地方查找可能对应的URL,给出一些智能提示,方便智能补全,部分浏览器甚至会直接从缓存中把网页显示出来。请求一旦发起,浏览器首先要做的事情就是解析这个域名,即找到对应的 IP。...

2018-08-24 15:41:39

C++ 知识点梳理

new/delete 与 malloc/free的区别malloc/free是标准库函数,new/delete是C++运算符。运算符是语言本身的特性,有固定的语义,由编译器解释语义。库函数是依赖于库的,一定程度上独立于语言,编译器不关心库函数的作用。delete会调用对象的析构函数, free只会释放内存,new调用构造函数。malloc/free是库函数而不是运算符,不在编译器控制权限之...

2018-08-22 17:58:10

进程与线程相关知识整理

进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。线程是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。线程由CPU独立...

2018-08-16 14:25:33

Linux 中的 bash_profile,bashrc 以及 profile 联系与区别

/etc/profile,/etc/bashrc,~/.bash_profile,~/.bashrc 文件的区别和特点比较容易混淆,这里先分别介绍其功能特点:/etc/profile:用来设置系统环境参数,比如$PATH. 这里面的环境变量是对系统内所有用户生效的; /etc/bashrc:这个文件设置系统 bash shell 相关的东西,对系统内所有用户生效。只要用户运行 bash 命令...

2018-08-16 13:32:43

"Learning to Compose with Professional Photographs on the Web" 论文解读(二)(附代码与详细注释)

接着上篇博客:“Learning to Compose with Professional Photographs on the Web” 论文解读(一)(附代码与详细注释)进行讲解。上篇博客讲到了论文中数据的处理,该博客将介绍模型的构建、训练以及评估等部分内容,并附上详细的代码及注解。 上图是本文的模型架构,非常简单,输入为两个叠加的总共为6个通道的图像(原图与裁剪图),网络中的特征提取层...

2018-07-23 22:37:13

"Learning to Compose with Professional Photographs on the Web" 论文解读(一)(附代码与详细注释)

最近在研究一篇论文 “Learning to Compose with Professional Photographs on the Web”,发表自 CVPR2017,论文地址链接:Learning to Compose with Professional Photographs on the Web。 如上图所示,利用深度学习的方式得到图片合适的取景位置是论文的主要目的所在。论文前面的...

2018-07-18 23:01:28

TensorFlow 中的 tf.app.flags 命令行参数解析模块

说道命令行参数解析,就不得不提到 python 的 argparse 模块,详情可参考博主之前的一篇博客:python argparse 模块命令行参数解析。在阅读相关工程的源码时,很容易发现 tf.app.flags 模块的身影。其作用与 python 的 argparse 类似。直接上代码实例,新建一个名为 test_flags.py 的文件,内容如下:#coding:utf-8...

2018-07-17 23:17:29

python 单下划线与双下划线,以及绝对导入与相对导入

单下划线与双下划线在 python 中,会看到 _xx, xx 以及 __xx 这样的变量或者函数名,在这里做一个简要的总结。_xx:保护(protected)变量或函数,意思是只有类对象和子类对象能够访问到这些变量,不能用 ‘from module import *’ 导入。当变量或函数是私有的时候,用 _xx 来表示是很好的习惯。; __xx:私有成员,意思是只有类对象自己能访问,连...

2018-07-16 21:54:47

tf.variable_scope(), tf.name_scope(), tf.get_variable(), tf.Variable() 理解总结

许多的 TensorFlow 开源项目都会频繁出现 tf.variable_scope, tf.name_scope, tf.get_variable(), tf.Variable() ,今天来对此做一个总结。注意,tf.Variable() 有大写!首先来谈谈 tf.get_variable() 与 tf.Variable(),因为如果使用 variable() 的话每次都会新建变量,但...

2018-07-12 23:56:57

python os.stat() 获取相关文件的系统状态信息

stat 系统调用时用来返回相关文件的系统状态信息的。下面直接以一个具体示例来进行简要说明: os.stat() 形参接收一个包含路径的文件名,其返回值有10个,列表如下: 返回属性 解释 st_mode inode 保护模式 st_ino inode 节点号 st_dev inode 驻留的设备 st_nlink inode...

2018-07-11 22:34:17

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。