import tensorflow as tf a = tf.linspace(-10., 10., 10) a with tf.GradientTape() as tape: tape.watch(a) y = tf.sigmoid(a) grads = tape.gradient(y, [a]) grads a = tf.linspace(-5.,5.,10) a tf.tanh(a) a = tf.linspace(-1.,1.,10) a tf.nn.relu(a) tf.nn.leak…
手写数字识别流程 MNIST手写数字集7000*10张图片 60k张图片训练,10k张图片测试 每张图片是28*28,如果是彩色图片是28*28*3-255表示图片的灰度值,0表示纯白,255表示纯黑 打平28*28的矩阵,得到28*28=784的向量 对于b张图片得到[b,784];然后对于b张图片可以给定编码 把上述的普通编码给定成独热编码,但是独热编码都是概率值,并且概率值相加为1,类似于softmax回归 套用线性回归公式 X[b,784] W[784,10] b[10] 得到 [b,1…
import tensorflow as tf from tensorflow import keras from keras import Sequential,datasets, layers, optimizers, metrics def preprocess(x, y): """数据处理函数""" x = tf.cast(x, dtype=tf.float32) / 255. y = tf.cast(y, dtype=tf.int32)…
import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D def himmeblau(x): return (x[0]**2 + x[1] - 11)**2 + (x[0] + x[1]**2 - 7)**2 x = np.arange(-6, 6, 0.1) y = np.arange(-6, 6, 0.1) print(f'x_shape: {x.shape},y_sh…
import tensorflow as tf x = tf.constant(1.) w1 = tf.constant(2.) b1 = tf.constant(1.) w2 = tf.constant(2.) b2 = tf.constant(1.) with tf.GradientTape(persistent=True) as tape: tape.watch([w1, b1, w2, b2]) y1 = x * w1 + b1 y2 = y1 * w2 + b2 dy2_dy1 = t…
import tensorflow as tf x = tf.random.normal([2, 4]) w = tf.random.normal([4, 3]) b = tf.zeros([3]) y = tf.constant([2, 0]) with tf.GradientTape() as tape: tape.watch([w, b]) # axis=1,表示结果[b,3]中的3这个维度为概率 prob = tf.nn.softmax(x @ w + b, axis=1) # 2 --…
import tensorflow as tf x = tf.random.normal([1, 3]) w = tf.ones([3, 1]) b = tf.ones([1]) y = tf.constant([1]) with tf.GradientTape() as tape: tape.watch([w, b]) prob = tf.sigmoid(x @ w + b) loss = tf.reduce_mean(tf.losses.MSE(y, prob)) grads = tape.…
import tensorflow as tf x = tf.random.normal([2, 4]) w = tf.random.normal([4, 3]) b = tf.zeros([3]) y = tf.constant([2, 0]) with tf.GradientTape() as tape: tape.watch([w, b]) prob = tf.nn.softmax(x @ w + b, axis=1) loss = tf.reduce_mean(tf.losses.MSE…
import tensorflow as tf w = tf.constant(1.) x = tf.constant(2.) y = x * w with tf.GradientTape() as tape: tape.watch([w]) y2 = x * w grad1 = tape.gradient(y, [w]) grad1 with tf.GradientTape() as tape: tape.watch([w]) y2 = x * w grad2 = tape.gradient(…
import tensorflow as tf y = tf.constant([1, 2, 3, 0, 2]) y = tf.one_hot(y, depth=4) # max_label=3种 y = tf.cast(y, dtype=tf.float32) out = tf.random.normal([5, 4]) out loss1 = tf.reduce_mean(tf.square(y - out)) loss1 loss2 = tf.square(tf.norm(y - out)…
sigmoid out' = sigmoid(out) # 把输出值压缩在0-1 import tensorflow as tf a = tf.linspace(-6., 6, 10) a tf.sigmoid(a) x = tf.random.normal([1, 28, 28]) * 5 tf.reduce_min(x), tf.reduce_max(x) x = tf.sigmoid(x) tf.reduce_min(x), tf.reduce_max(x) a = tf.linspace…
out = f(X@W + b) out = relut(X@W + b) import tensorflow as tf x = tf.random.normal([4, 784]) net = tf.keras.layers.Dense(512) out = net(x) out.shape net.kernel.shape, net.bias.shape net = tf.keras.layers.Dense(10) try: net.bias except Exception as e:…
import tensorflow as tf from tensorflow import keras from tensorflow.keras import datasets import os # do not print irrelevant information # os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # x: [60k,28,28], [10,28,28] # y: [60k], [10k] (x, y), (x_test, y_te…
import tensorflow as tf from tensorflow import keras # train: 60k | test: 10k (x, y), (x_test, y_test) = keras.datasets.mnist.load_data() x.shape y.shape # 0纯黑.255纯白 x.min(), x.max(), x.mean() x_test.shape, y_test.shape # 0-9有10种分类结果 y_onehot = tf.on…
import tensorflow as tf a = tf.random.normal([3, 3]) a mask = a > 0 mask # 为True元素,即>0的元素的索引 indices = tf.where(mask) indices # 取回>0的值 tf.gather_nd(a, indices) A = tf.ones([3, 3]) B = tf.zeros([3, 3]) # True的元素会从A中选值,False的元素会从B中选值 tf.where(mask,…
import tensorflow as tf a = tf.range(10) a # a中小于2的元素值为2 tf.maximum(a, 2) # a中大于8的元素值为8 tf.minimum(a, 8) # a中的元素值限制在[2,8]区间内 tf.clip_by_value(a, 2, 8) a = a - 5 a tf.nn.relu(a) tf.maximum(a, 0) 缩放时不改变梯度方向 a = tf.random.normal([2, 2], mean=10) a tf.no…
import tensorflow as tf a = tf.reshape(tf.range(9), [3, 3]) a tf.pad(a, [[0, 0], [0, 0]]) tf.pad(a, [[ 1, 0, ], [0, 0]]) tf.pad(a, [[1, 1], [0, 0]]) tf.pad(a, [[1, 1], [1, 0]]) tf.pad(a, [[1, 1], [1, 1]]) a = tf.random.normal([4, 28, 28, 3]) a.shape…
import tensorflow as tf a = tf.random.shuffle(tf.range(5)) a tf.sort(a, direction='DESCENDING') # 返回索引 tf.argsort(a, direction='DESCENDING') idx = tf.argsort(a, direction='DESCENDING') tf.gather(a, idx) idx = tf.argsort(a, direction='DESCENDING') tf.…
import tensorflow as tf a = tf.ones([2, 2]) a tf.norm(a) tf.sqrt(tf.reduce_sum(tf.square(a))) a = tf.ones([4, 28, 28, 3]) a.shape tf.norm(a) tf.sqrt(tf.reduce_sum(tf.square(a))) b = tf.ones([2, 2]) tf.norm(b) tf.norm(b, ord=2, axis=1) tf.norm(b, ord=…
import tensorflow as tf # 6个班级的学生分数情况 a = tf.ones([4, 35, 8]) b = tf.ones([2, 35, 8]) c = tf.concat([a, b], axis=0) c.shape # 3个学生学生补考 a = tf.ones([4, 32, 8]) b = tf.ones([4, 3, 8]) tf.concat([a, b], axis=1).shape a = tf.ones([4, 35, 8]) b = tf.ones(…
import tensorflow as tf b = tf.fill([2, 2], 2.) a = tf.ones([2, 2]) a+b a-b a*b a/b b // a b % a tf.math.log(a) # 只有以e为底的log tf.exp(a) tf.math.log(8.)/tf.math.log(2.) # 以2为底 tf.math.log(100.)/tf.math.log(10.) # 以10为底 tf.pow(b, 3) b**3 tf.sqrt(b) a@b…
Broadcasting可以理解成把维度分成大维度和小维度,小维度较为具体,大维度更加抽象.也就是小维度针对某个示例,然后让这个示例通用语大维度. import tensorflow as tf x = tf.random.normal([4,32,32,3]) x.shape (x+tf.random.normal([3])).shape (x+tf.random.normal([32,32,1])).shape (x+tf.random.normal([4,1,1,1])).shape tr…
图片视图 [b, 28, 28] # 保存b张图片,28行,28列(保存数据一般行优先),图片的数据没有被破坏 [b, 28*28] # 保存b张图片,不考虑图片的行和列,只保存图片的数据,不关注图片数据的细节 [b, 2, 14*28] # 保存b张图片,把图片分为上下两个部分,两个部分具体多少行是不清楚的 [b, 28, 28, 1] # 保存b张图片,28行,28列,1个通道 First Reshape(重塑视图) import tensorflow as tf a = tf.random…
import tensorflow as tf a = tf.ones([1, 5, 5, 3]) a.shape a[0][0] numpy : 索引 a = tf.random.normal([4, 28, 28, 3]) a.shape a[1].shape a[1, 2].shape a[1][2][3].shape a[1, 2, 3, 2].shape 一维切片 a = tf.range(10) a a[-1:] a[-2:] a[:2] a[:-1] 多维切片 a = tf.ran…
import numpy as np import tensorflow as tf tf.convert_to_tensor(np.ones([2, 3])) tf.convert_to_tensor(np.zeros([2, 3])) list tf.convert_to_tensor([1, 2]) tf.convert_to_tensor([1, 2.]) tf.convert_to_tensor([[1], [2.]]) zeros tf.zeros([]) tf.zeros([1])…
list: [1,1.2,'hello'] ,存储图片占用内存非常大 np.array,存成一个静态数组,但是numpy在深度学习之前就出现了,所以不适合深度学习 tf.Tensor,为了弥补numpy的缺点,更多的是为了深度学习而生 tensor数据存储类型 scalar:标量,1.1 vector:向量,[1.1],[1.1,2.2,...] matrix: 矩阵,[[1.1,2.2],[3.3,4.4]] tensor:rank>2 数据类型: Int, float, double boo…
Matplotlib 是 Python 的绘图库. 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案. 它也可以和图形工具包一起使用,如 PyQt 和 wxPython. Windows 系统安装 Matplotlib 进入到 cmd 窗口下,执行以下命令: python -m pip install -U pip setuptools python -m pip install matplotlib Linux 系统安装 Matplotlib 可以使用 Linux 包…
实验课程名称:大数据处理技术 实验项目名称:hadoop集群实现PageRank算法 实验类型:综合性 实验日期:2018年 6 月4日-6月14日 学生姓名 吴裕雄 学号 15210120331 班级 软工三班 专业名称 软件工程 实验组 其他成员 无 实验地点 F110 实验成绩 (教师签名)   实验目的与要求 了解PageRank算法 学会用mapreduce解决实际的复杂计算问题 搭建hadoop分布式集群 编写mapreduce代码 根据输入的网页链接数据,能够得到最终的pagera…
C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量.链表.队列.栈. C++ 标准模板库的核心包括以下三个组件: 容器(Containers) 容器是用来管理某一类对象的集合.C++ 提供了各种不同类型的容器,比如 deque.list.vector.map 等. 算法(Algorithms) 算法作用于容器.它们提供了执行各种操作的方式,包括对容器内容执行初始化.排序.搜索和转换等操作. 迭代器…