
Tensorflow
Tensorflow框架的使用
sweetheart7-7
学习笔记
展开
-
GAN/WGAN实战
加载数据集dataset.pyimport multiprocessingimport tensorflow as tfdef make_anime_dataset(img_paths, batch_size, resize=64, drop_remainder=True, shuffle=True, repeat=1): @tf.function def _map_fn(img): img = tf.image.resize(img, [resize, res原创 2021-02-03 23:01:43 · 395 阅读 · 0 评论 -
GAN、DCGAN、WGAN、WGAN-GP
原理详解:https://blog.youkuaiyun.com/soullines/article/details/102593950p(x)是某种分布,只是一种表示方式,不需要知道具体服从什么分布比如用神经网络G表示,G网络学到的参数就是p(x)的分布pr为真实分布,p(z)/G网络为生成网络的分布D为鉴别器Discriminator鉴别器的机制是奖励真实样本,惩罚伪造样本;所以D网络的训练过程就是迭代计算使得其loss 函数V(G,D)最大化的过程;也就是 argmax V(D,G)的过程原创 2021-02-02 16:53:46 · 687 阅读 · 0 评论 -
AE/VAE实战
import osimport tensorflow as tfimport numpy as npfrom tensorflow import kerasfrom tensorflow.keras import Sequential, layersfrom PIL import Imagetf.random.set_seed(22)np.random.seed(22)os.environ["TF_CPP_MIN_LOG_LEVEL"] = '2'def save_images(.原创 2021-01-31 14:39:57 · 275 阅读 · 0 评论 -
Auto-Encoders与Variational Auto-Encoders
Xi是input,重建的过程是使loss最小,即logP(Xi|z)变大,使X~趋近于Xi,即在现有网络fai网络中间给出z以后X~属于Xi的概率最大Z是中间的hidden layer属于自己的分布,这个分布是由sei他网络决定的在p分布下x的概率,在q分布下x的概率,然后再积分优化loss => 使重构误差减小,和使q分布趋向于P分布sample()操作不可导...原创 2021-01-31 09:38:41 · 228 阅读 · 0 评论 -
LSTM与GRU
由于RNN的梯度计算时,总会有一项Whh的k-i次方, 当i越小, 即(越靠前的层),Whh的k-i次方会越来越大,所以越前的层的梯度越容易出现梯度爆炸现象。Gradient clippingLSTM(可以解决梯度爆炸问题)RNN原始模型LSTM结构可以看到LSTM的梯度计算公式为4项的和,这样可以防止出现次方项使梯度过大,也不会因为某一项的大小影响总体的梯度稳定。也可以这样看: 当remember gate way 接近于1时,Ct 将约等于Ct-1,memo原创 2021-01-29 23:55:35 · 322 阅读 · 1 评论 -
RNN实战情感分类
Embedding层介绍cellimport osimport tensorflow as tfimport numpy as npfrom tensorflow import kerasfrom tensorflow.keras import layerstf.random.set_seed(22)np.random.seed(22)os.environ["TF_CPP_MIN_LOG_LEVEL"] = '2'batchsz = 128# 常用单词数量, 其他不常用单词将表示原创 2021-01-28 11:42:51 · 1080 阅读 · 4 评论 -
RNN循环神经网络
上图一个单词一个线性层的model,当单词数量变多时,参数量会变的很大权值共享后只需要一个线性层具有时间概念RNN-Model数学形式原创 2021-01-27 12:08:08 · 231 阅读 · 0 评论 -
序列表示方法
具有时间相关性[b个波形, 采样100个seq时间点, 对应每个时间点的feature]最简单的one_hot encoding意思相近的单词在时间轴上相关性距离越小 表示方式越好Embedding LayerIn [2]: from tensorflow.keras import layersIn [3]: import tensorflow as tfIn [6]: x = tf.range(5)In [7]: x = tf.random.shuffle(x)I.原创 2021-01-27 08:53:46 · 1474 阅读 · 0 评论 -
ResNet实战
Basic BlockRes BlockResNet18原创 2021-01-25 17:34:32 · 294 阅读 · 0 评论 -
ResNet与DenseNet
ResNet(残差网络)H(x) = F(x) + xF(x) = H(x) - x当x为最优解时(或趋近最优解时),为了保证下一层网络状态也是最优,只需令F(x)=0即可,此时,H(x) = x来自知乎的解释F是求和前网络映射,H是从输入到求和后的网络映射。比如把5映射到5.1,那么引入残差前是F'(5)=5.1,引入残差后是H(5)=5.1, H(5)=F(5)+5, F(5)=0.1。这里的F'和F都表示网络参数映射,引入残差后的映射对输出的变化更敏感。比如s输出从5.1变到5.2,映原创 2021-01-25 13:01:13 · 687 阅读 · 0 评论 -
经典卷积网络
LeNetAlexNetVGGGoogLeNet原创 2021-01-24 23:23:54 · 170 阅读 · 0 评论 -
batchnorm
running-mean和running-std是所有train数据统计出来的trainable=False时,在反向传播时,贝塔和伽玛不会被优化在train时,running-mean和runnint-std会被更新,test时,不会In [3]: net = layers.BatchNormalization()In [4]: x = tf.random.normal([2, 3])In [5]: out = net(x)In [6]: net.trainable_var...原创 2021-01-24 09:42:09 · 299 阅读 · 1 评论 -
CIFAR100与VGG13实战
import tensorflow as tffrom tensorflow.keras import layers, optimizers, datasets, Sequentialimport osos.environ['TF_CPP_MIN_LOG_LEVEL']='2'tf.random.set_seed(2345)def preprocess(x, y): # [0~1] x = tf.cast(x, dtype=tf.float32) / 255. y =.原创 2021-01-22 23:26:47 · 262 阅读 · 0 评论 -
池化与采样
下采样最大/平均池化In [23]: x = tf.random.normal([1, 14, 14, 4])In [24]: pool = layers.MaxPool2D(2, strides=2)In [25]: out = pool(x)In [26]: out.shapeOut[26]: TensorShape([1, 7, 7, 4])In [27]: pool = layers.MaxPool2D(3, strides=2) #(窗口大小, strides)In原创 2021-01-22 19:54:42 · 255 阅读 · 0 评论 -
卷积神经网络
layers.Conv2DIn [1]: import tensorflow as tf ...: from tensorflow.keras import layers########## x必须ndim=4, shape:[b, h, w, c]In [2]: x = tf.random.normal([1, 32, 32, 3])In [3]: layer = layers.Conv2D(4, kernel_size=5, strides=1, padding='valid'...原创 2021-01-22 19:13:56 · 183 阅读 · 0 评论 -
Regularization,Dropout,动量与学习率,交叉验证
for epoch in range(500): # 60k idx = tf.range(60000) idx = tf.random.shuffle(idx) x_train, y_train = tf.gather(x, idx[:50000]), tf.gather(y, idx[:50000]) x_val, y_val = tf.gather(x, idx[-10000:]), tf.gather(y, idx[-10000:]) db_train = tf.data.Dataset原创 2021-01-22 17:19:18 · 263 阅读 · 0 评论 -
CIFAR10自定义网络实战
如果对网络不作其他处理在cifar10数据集的test上的准确率只能跑到0.5左右import tensorflow as tffrom tensorflow.keras import datasets, layers, optimizers, Sequential, metricsfrom tensorflow import kerasimport osos.environ["TF_CPP_MIN_LOG_LEVEL"] = "2"def prepocess(x, y): # [.原创 2021-01-19 18:01:08 · 232 阅读 · 0 评论 -
模型的保存与加载
只保存模型的参数信息(w)# 保存网络network.save_weights('weights.ckpt')# 加载网络network.load_weights('weights.ckpt')代码片段# 保存网络network.save_weights('weights.ckpt')print('saved weights.')# 删除变量del network# 此处定义的网络需要与save时的网络相同network = Sequential([layers.Dense(2原创 2021-01-19 12:41:30 · 400 阅读 · 0 评论 -
Kears高层API
文章目录MetricsMetricsMetrics测量表,可以对一个epoch的loss或者acc求平均值新建meteracc_meter = metrics.Accuracy()loss_meter = metrics.Mean()添加数据loss_meter.update_state(loss)acc_meter.update(y, pred) # 自动计算acc获取平均数据print(epoch, "loss", loss_meter.result().numpy()).原创 2021-01-19 11:59:37 · 236 阅读 · 1 评论 -
Tensorboard可视化
在项目文件夹下创建logs文件夹tensorboard --logdir logs 命令启动此命令指定监听的文件夹进入页面后这是之前跑的数据设置自动刷新页面的时间current_time = datetime.datetime.now().strftime("%Y%m%d-%H%M%S")log_dir = 'logs/' + current_timesummary_writer = tf.summary.create_file_writer(log_dir)# 上面的代码指定原创 2021-01-19 08:50:32 · 564 阅读 · 5 评论 -
fashion_mnist数据集实战
fashion_mnist数据集的大小同手写数字并且也是10分类问题,图片大小一样为28 * 28的单通道图片此程序采用5层网络结构,Adam优化器,cross entry为loss进行train需要注意的细节对数据的预处理及类型转换, train data需要shuffle和batch, test data需要分batchtrain时,迭代的是dataset类型的原生dbmodel.summary() # 打印网络信息 并且在这之前必须build输入,如: model.build([Non原创 2021-01-18 22:09:43 · 387 阅读 · 0 评论 -
手推bp反向传播算法
我成了第一次完整的手推下来BP的过程,吓得赶集记录下来,emmmnnnn话说不手推的话还能脚推???既然是俺的第一次的话,俺相信会有第二次。。第三次,嘿嘿嘿。。。言归正传:俺发现确实要自己推一遍,这样的话可以对deep learning 结构和bp过程更加理解有利于自己更好的deep learn嘿嘿嘿单层感知机的梯度计算多层感知机的梯度计算及bp完美...原创 2021-01-17 16:58:01 · 344 阅读 · 0 评论 -
Tensorflow基础
文章目录tensorflow数据类型创建Tensortensorflow数据类型创建Tensor原创 2020-11-08 11:19:10 · 422 阅读 · 0 评论 -
Tensorflow-手写数字初体验
import osimport tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras import layers,optimizers,datasets# 设置显示os.environ["TF_CPP_MIN_LOG_LEVEL"] = '2'"""数据准备"""# 加载并下载在线数据集# [60k,28,28](x, y),(x_val, y_val) = datasets.mnist.load_data原创 2020-11-07 22:51:39 · 219 阅读 · 0 评论