![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
tensorflow2
mz_老张
这个作者很懒,什么都没留下…
展开
-
关于tensorflow中Sequential与Model的模型输入与输出
看了网上很多关于Tensorflow的Sequential与Model的讲解,绝大部分都是照搬官方说明讲一遍。不想想要是官方说明说的清还会来看你的讲解?两者简单说明tf.keras.Sequential是通过序列层来构建模型的,其本身返回的还是一个继承tf.keras.Model的实例。tf.keras.Model是一个模型类,作用就是来构建模型的。输入与输出对于任何模型,最关键的就是其输入与输出,Tensorflow从设计上就通过类的参数来强势让你自己先理清什么是输入与输出。对于tf.kera原创 2021-09-08 16:24:48 · 5902 阅读 · 1 评论 -
一句话理解GlobalAveragePooling2D的算法效果
GlobalAveragePooling2D就是将每张图片的每个通道值各自加起来再求平均,最后结果是没有了宽高维度,只剩下个数与平均值两个维度。可以理解为变成了多张单像素图片。从形状上看:[B,H,W,C] ->GlobalAveragePooling2D -> [B,C]下面有1张图片,高宽分别是2像素,RGB3个通道。即[1,2,2,3]经过GlobalAveragePooling2D得到一个单通道单像素图片[1,3].其中RGB各分通道的像素值都加起来之后得到了一个平均值。imp原创 2021-09-02 15:01:14 · 6387 阅读 · 2 评论 -
关于tensorflow中Conv2D与Conv2DTranspose的same与valid算法
在tensorflow对图片的卷积操作,常用到2D卷积层Conv2D与2D反卷积层Conv2DTranspose。这些卷积层中都有两个个padding方式,“same"与"valid”same 保持输入输出宽高一致公式:Conv2D : W = ceil(W`/S)Conv2DTranspose : W = W`*SW`: 输入宽或高S: strides 步长ceil:向上取整import tensorflow as tfx = tf.random.normal((2,7,7,原创 2021-09-02 11:28:28 · 825 阅读 · 2 评论 -
一句话理解tf.keras.layers.UpSampling2D
UpSampling2DUpSampling2D就是对图片数据在高与宽的方向进行数据插值倍增参数说明tf.keras.layers.UpSampling2D( size=(2, 2), data_format=None, interpolation='nearest', **kwargs)参数: size: int或者tuple,行与列的采样数,一个int表示两个值都相同。 data_format: 数据格式。str, 默认"channels_last",还有"channels原创 2021-08-28 09:03:15 · 6914 阅读 · 2 评论 -
关于tf.keras.layers.Dense与tf.keras.layers.Flatten的区别
tf.keras.layers.Dense 全连接层该层的效果是将输入的最高维(也就是最后一维)转成指定的维度数如下例,将[5,2]形状的向量输入给Dense(8),最后输出形状维[5,8]import tensorflow as tfimport numpy as npinput_data = np.arange(10).reshape(5,2)input_data'''array([[0, 1], [2, 3], [4, 5], [6, 7],原创 2021-08-24 11:59:21 · 4488 阅读 · 0 评论 -
tf.split张量拆分(很简单)
tf.split的作用就是将张量按指定维度和分割个数拆分为子张量列表。源码解释tf.split( value, num_or_size_splits, axis=0, num=None, name='split')参数:value: 张量 num_or_size_splits:int或者一维张量或者list,将根据axis所指向的维度进行切分数据。 可以理解为切这个张量的分割量(注意不是比例)。 当时一个整数时,表示按该值均分,比如2,则一分为二,当是列表时,则按列表的元素值来分原创 2021-07-22 15:09:03 · 1875 阅读 · 0 评论 -
tensorflow2 当精准率accuracy一直浮动变化不大时的解决方案
解决方案调整batch_size大小。如果数据集少,则相对减少batch_size,其实是变相增加训练次数。模型中增加层。这是参数拟合上的效果,不管三七二十一,先过拟合再说。更换优化器。有时候adam模式一直不变,切换成RMSprop反而有奇效调整学习率。如果学习率过小会导致收敛太慢,accuracy上不去,适当增加一些。加大epochs。在前面方法都用尽的情况下,增加训练轮数往往能够实现逆转。...原创 2021-07-01 16:22:49 · 1732 阅读 · 0 评论 -
tensorflow2.5 loss损失值非常大,或者非常小
解决办法:数据是否归一化或者标准化处理过学习率是否比较大,一般归一化后0.001都算大了。原创 2021-07-01 16:20:00 · 1356 阅读 · 0 评论 -
关于tensorflow模型训练时loss: nan的问题
其他情况我不清楚,我这里查了半天,发现是csv数据集中有空值,也就是pandas里所说的null值。使用pandas函数dropna()去掉就好了。原创 2021-07-01 14:00:45 · 460 阅读 · 0 评论 -
关于Tensorflow输入数据的shape
关于Tensorflow输入数据的shape确定注意:1.模型数据输入的shape与batch_size无关!2.只有"单个"样本的shape有关!3.且只与样本的"特征数据"的shape有关,与标签shape无关!因为从框架设计上来说,每个人训练的输入batch_size不一定一样,所以模型输入shape就肯定不能带上batch_size。只当真正训练时,自动每批次求导即可。即,你每次输入1个样本,它就计算1个样本,求一次损失;如果你输入10个,那么它就计算10个样本,求其均值损失。ten原创 2021-07-01 10:21:49 · 2468 阅读 · 1 评论 -
ubuntu 安装TensorFlow tf.config.list_physical_devices(‘GPU‘)检测为[]
如果你更新了驱动,又下载了正确的cuda与cudnn版本,还是出现这个问题,那么可能是环境变量的问题。因为~/.bashrc是每个账户独立的。你在root权限下修改的bashrc其实没有影响你当前账户下的bashrc。所以你需要在你当前执行TensorFlow的账号下编辑bashrc,或者在/etc/profile里添加环境变量。例如:export PATH=/usr/local/cuda-11.2/bin${PATH:+:${PATH}}export LD_LIBRARY_PATH=/usr/l原创 2021-06-26 21:04:59 · 4138 阅读 · 0 评论 -
name ‘keras_applications‘ is not defined
TensorFlow官方文档里很多都是老版本的api也不更新一下。解决办法:使用tf.keras.applications代替keras_applicationshelp(tf.keras.applications.mobilenet_v2.preprocess_input)原创 2021-06-25 23:54:49 · 656 阅读 · 0 评论 -
TensorFlow的一些数据集
存一下,慢慢来添加flower_photos链接:https://pan.baidu.com/s/1dNw96k8gCdILdvbOAPj0rg提取码:CGAI原创 2021-06-25 17:57:27 · 209 阅读 · 0 评论 -
tf.slice()的简单理解
tf.slice()的简单理解tf.slice(input,begin,size)其中input是原始数据,begin是从哪里(起点)开始,size是裁剪后想得到的结果的shape也就是每维度的元素个数。t = tf.constant([[[1, 2, 3], [4, 5, 6]], [[11, 12, 13], [14, 15, 16]], [[21, 22, 23], [24, 25, 26]]])tf.slice(t, [1,原创 2021-04-02 20:46:22 · 211 阅读 · 0 评论 -
关于tensorflow.keras.preprocessing.text.Tokenizer分词器一些注意
关于tensorflow.keras.preprocessing.text.Tokenizer分词器一些注意Tokenizer的一些常用方法如下:起手式:t=Tokenizer() #创建一个分词器t.fit_on_texts(text) #将文本内容添加进来基本招式:print(t.word_counts) #每个词的数量print(t.word_docs) #每个词与数量的字典 {'xx':4,'yy':2}print(t.word_index) #每个词与在所有词原创 2020-12-24 15:02:52 · 1289 阅读 · 0 评论 -
CancelledError: [_Derived_]RecvAsync is cancelled.[[{{node Adam/Adam/update/AssignSubVariab...解决方案
使用tensorflow2做LSTM时报“CancelledError: [Derived]RecvAsync is cancelled.[[{{node Adam/Adam/update/AssignSubVariableOp/_43}}]][[gradient_tape/sequential_2/embedding_2/embedding_lookup/Reshape/_40]] [Op:__inference_train_function_12331]”这个是显存的问题,显卡太垃圾了导致默认分原创 2020-11-15 16:31:36 · 780 阅读 · 0 评论