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 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.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 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.…
图片视图 [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…
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…
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 --…