模型优化和调整(1) 我们通常会调整模型,以期望获得一个“既快又好”的模型(for both efficiency and effectiveness)。模型优化一般集中于过程(inference,推断,这里指模型训练过程)和结果(goal)两个方面。
GANs和Diffusion模型(3) Denoising Diffusion Probabilistic Model,简写为DDPM。。FID(Fréchet Inception Distance,弗雷切特起始距离)用于评价一个生成模型产生的图片质量的指标。FID分数会比较生成图片的分布和用于训练生成器的真实图片的分布。由于FID是在测量两种图片分布之间的距离,因此一个完美的FID分数是0.0。通常,一个模型的FID分数越低,说明这个模型产生的图片质量越高。
GANs和Diffusion模型(2) 可以看出,生成器的神经网络中,我们使用了转置卷积和批规范化。模型summary如下,第一个全连接层Dense:输入100x1向量,输出7*7*256=12544个结点,因此有参数:100*12544+12544 = 1266944个接下来的BatchNormalization:对于当前层的每一个结点,batch normalization有4个参数,因此有:12544 * 4 = 50176。具体细节可以查看前面在批规范化(batch normalization)中给出的参考博文。
GANs和Diffusion模型(1) 同时,定义生成器和鉴别器的优化因子,用于梯度下降的算法。学习率0.001,表示每次梯度下降的时候,只下降当前梯度值的千分之一。详见“语言要点”中的“下面这段代码用于创建checkpoint,其作用并未验证。
卷积神经网络必备基础 什么是ImageNet一个很容易访问的大规模图片数据库起始于2009年基于WordNet架构每一个概念有多个同义词集合(synset, or synonym set)描述,例如对于Continental glacier(大陆冰川)有以下同义词集:Geological formation | ice mass | glacier | continental glacier当前,每一个同义词集大约有1000张图片ImageNet挑战赛(ImageNet Challenge)
神经网络介绍 机器学习(Machine Learning)人工智能(Artificial Intelligence),机器学习,深度学习(Deep Learning)的关系:人工智能 > 机器学习 > 深度学习。(">"表示包含)而神经网络是深度学习中才用到的:深度学习基于神经网络(更准确地说是人工神经网络, ANN)神经元(neuron)中间神经元(Interneuron):用于处理信息人工神经元(Artificial Neuron)是一个数学函数。
Deep Learning相关概念介绍 Deep learning介绍属于machine learning的范畴3层及以上的神经网络模拟人类处理数据和做出决策的行为在过去几年指数级增长以大规模数据处理和推理的进步为动力(GPUs)线性回归 (Linear Regression)y=ax+b, a is slope(斜率), b is intercept(截距)逻辑回归(Logistic Regression)y = f(ax+b), f是激活函数(Activation Function)Perceptron(感知机)
GMainLoop和GSource简介 下面看一个自定义GSource的例子,通过这个例子,可以更好地理解GSource在GMainLoop中的运行机制。//设置检查事件时间超时。如果返回 TRUE, check 会立刻被调用;//如果返回 FALSE 并设置了 timeout , timeout 时间后 check 会被调用。//检查事件是否准备完毕。返回 TRUE 为准备完毕, dispatch 会被立刻调用;//返回 FALSE 不调用 dispatch,进入下一次事件循环。//分发事件。
GTask简介 GTask定义在gio这个库中,gio虽然和glib是两个不同的库,但从概念来说,它们都属于glib下面的内容,它们都是由GLib开发组提供的。按照GIO手册的定义:“Gio是一个库,为通用I/O、网络、IPC、设置和其他高级应用程序功能提供有用的类”。GTask表示并管理一个可取消的“任务”,常用于“异步操作”中,本文即重点介绍一下GTask在异步操作中的应用,从而通过这个应用去理解GTask。
GVariant格式字符串(GVariant Format Strings) GVariant是glib提供的一种特殊的类型,它可以将许多不同类型的参数整合到一起,最终形成一个指针指向的对象,形式上就是一个指针参数。dbus接口通信中,往往会用到GVariant。本文系统地学习glib手册中关于GVariant Format Strings的描述。
glib的开发环境 在中,我们自己写了一个glib的小程序。这篇文章详细描述一下怎样在已经安装了glib的linux服务器上实现这个小程序的编译。基本的libglib*.so是肯定需要的。此外,g_object_new/g_object_ref_sink等函数都是声明在gobject.h中的,因此还需要一个libgobject*.so这样的库。
Glib中的Floating references 首先说明一下什么是“引用”。在很多程序语言设计中,内存的管理都会采用引用计数的方式:即创建内存或者有新的对象指向这块内存时,就会给这个引用的内存的计数加1;反之则引用减1。当引用计数减为0时,内存就会被释放。C++中也有“引用”这个概念,和前面讲到的“引用”并不完全一样,至少从形式上看并不一样。因此,不要将C++中的“引用”和前面的“引用”混淆。对于使用了引用计数的内存管理,使用 _unref 作为函数后缀名要比 _free 更恰当。例如在 GLib/GTK+ 栈中提供的函数是和。
Kmeans算法学习 本博文通过学习《全面解析Kmeans聚类(Python) · Issue #42 · aialgorithm/Blog · GitHub》中的Kmeans算法以及其中的一个程序,详细描述了Kmean聚类算法的实现细节。通过这个学习,可以更好地理解Kmeans算法。在学习过程中,也大量参考了《Kmeans++聚类算法原理与实现 - 知乎 (zhihu.com)》这篇文章Kmeans算法主要用于无监督学习中的聚类,即将一堆数据按照其数据特征分类。
怎样从Google Colab中删除一个文件 进入Drive页面,在'My Drive'中选择要删除的文件,找到'Move to trash'选项,并点击。然后再在左侧的'Trash'中找到这个文件,选择'Delete forever',并点击。登录后,点击左上角的'CO'图标。
Python标准库 - re -- 正则表达式 (2) 如果只有一个参数,结果就是一个字符串,如果有多个参数,结果就是一个元组(每个参数对应一个项),如果没有参数,组1默认到0(整个匹配都被返回)。假设你在写一个扑克程序,一个玩家的一手牌为五个字符的串,每个字符表示一张牌,"a" 就是 A, "k" K, "q" Q, "j" J, "t" 为 10, "2" 到 "9" 表示2 到 9。search()和match()的区别:match()只在字符串的开头位置检测匹配,search()在字符串中的任何位置检测匹配(这也是 Perl 在默认情况下所做的)。
Python标准库 - re -- 正则表达式 (1) 正则表达式中的“模式”在 Python 代码中'r'。这个做法的背景是:例如,要匹配一个反斜杠字面值,用户将必须写成'\\\\'因为正则表达式必须为\\,而每个反斜杠在普通 Python 字符串字面值中又必须表示为\\;4个反斜杠才能在正则表达式中表示一个反斜杠字符,这样的写法太复杂。
Python教程学习(8) 对于虚拟环境的应用场景,教材上举了一个希望对不同的应用程序使用不同的基础Python版本的例子,两个不同的Python版本可以独立工作在自己的虚拟环境种,互不影响。我的理解是:Python的虚拟环境可以实现在一定程度上的独立,包括一定程度地隔离系统安装的python环境,使你可以工作在一个更加独立的Python环境中。这也就造成了浮点数的精确度问题。注意:不要使用下面图中所示的Python应用程序窗口,那样就直接进入系统安装的Python环境了,而我们的目的是创建一个新的Python环境(虚拟的)。