多态 编译器&运行期绑定
名词解释:
多态:
面向对象语言的一个重要特征:多态(polymorphism)。以专业术语来讲,是一种运行期绑定(run-time binding)机制,,通过这种机制,实现函数名绑定到具体实现代码的目的。
入口地址:
执行程序时,构成程序的函数在内存中拥有自己的存储空间,而一个函数在内存中的起始地址被称为入口地址,函数名与入口地址是紧密相连的。
运行期绑定:
函数的地址在运行时确定
机器学习--梯度下降
在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。这里就对梯度下降法做一个完整的总结。
1. 梯度
在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数f(x,y), 分别对x,y求偏导数,求得的梯度向量就是(∂f/∂x, ∂f/∂
CIFAR-10驱动的KNN分类器
先读取CIFAR-10的数据集,CIFAR的数据字典包含了50000张图片,每张图片是32x32的的三通道彩色图像,所以CIFAR-10的训练集是有50000个32x32x3=3072的向量组成。 (50000,3072)的矩阵构成了训练图片,训练集中有包含了50000个label。测试集是10000张图片,10000个label。训练集分为5个batch,在读取数据时,将5个batch数据读入到一
KNN cifar-10 L1 L2距离 交叉验证
K-NN k-Nearest Neighbor分类器
之前的近邻算法(NN)是仅仅选择一个最近的图像标签,K-NN是选出K个差值最小的图像标签,然后看那个标签的数量多就选用那个标签作为预测值,这样就提高了泛化能力。
交叉验证。
有时候,训练集数量较小(因此验证集的数量更小)。如果是交叉验证集,将训练集平均分成5份,其中4份用来训练,1份用来验证。然后我们循环着取其中4份来训练,其中1份来验证
Tensorflow 模型持久化
保存变量
这里的保存两个变量,然后另外从另一个文件读取
import tensorflow as tf
from prepare import Prepare
Prepare()
v = tf.Variable(0, dtype=tf.float32, name="v")
for variables in tf.global_variables():
print(vari...
Tensorflow 中max_pool的padding 问题
之前在学习过程中并没有遇到池化层padding的问题,在听课过程没有提到池化层padding,于是试了下,果然填不填充是不一样的效果。下面是程序示例
a = tf.get_variable('w', shape=(1,4,4,1), initializer=tf.truncated_normal_initializer(seed=1))
b = tf.nn.max_pool(a, ...
关于tensorflow 中 placeholder 与 reshape的一点坑
在搭LeNet-5 模型时,在卷积层的输出到全连接层时,使用了reshape将四维的矩阵转化维2维矩阵时,发生了错误:
起初以为时类型转换发生了错误,然后演算过后发现并没有错误。然后改了下 训练数据的输入格式
# 定义输入输出placeholder, **修改前**
x = tf.placeholder(tf.float32,
...
一种通用的图像预处理方式
图像像素处理 正反向,使像素呈高斯分布: SQUEEZENET_MEAN = np.array([0.485, 0.456, 0.406], dtype=np.float32)
SQUEEZENET_STD = np.array([0.229, 0.224, 0.225], dtype=np.float32)
def preprocess_image(img):
"""
Preprocess an image for squeezenet.
Subtracts th
开发环境搭建(1):Ubuntu 16.04+Win10 双硬盘双系统安装
安装环境:
基于 BIOS+MBR,两块硬盘SSD+机械硬盘,win10 1709+ ubuntu16.04.04
1.安装Windows 10
笔者使用的电脑为联想小新锐7000基础版,仅有一块机械硬盘,后来加的固态硬盘。所以机械硬盘为笔记本的第一硬盘,在重装系统的过程中,将windows的保留分区(boot分区及其他)安装在了机械硬盘上,笔者曾试图用windows安装程序自带分...
今日推荐
周排行