TensorFlow
TensorFlow的一些tips
前端吗喽
这个作者很懒,什么都没留下…
展开
-
Adam优化器还需要加入学习率衰减吗?
在 StackOverflow 上有一个问题Should we do learning rate decay for adam optimizer - Stack Overflow,我也想过这个问题,对 Adam 这些自适应学习率的方法,还应不应该进行 learning rate decay?论文 《DECOUPLED WEIGHT DECAY REGULARIZATION》的 Section 4.1 有提到:Since Adam already adapts its parameterwise.转载 2021-07-02 16:30:01 · 12945 阅读 · 14 评论 -
在本地浏览器查看远程服务器训练时的tensorboard
看了一些博客,总结了一种最简单,不需要额外软件和配置的方法:将服务器的端口转发到我们的本地机子上来简单来说就是以下三步:首先你的训练代码中得有关于tensorboard写入日志的操作,我这里以tensorflow为例然后在训练时写入回调即可,这里的log_dir等会儿就是tensorboard监控的文件夹,也就是说训练保存的各种参数都被写入了这个文件夹了。第一步:在远程服务器终端输入:tensorboard -- logdir=log_dir --port 6006,这里的log_d原创 2021-07-05 21:07:41 · 864 阅读 · 0 评论 -
tf.keras.callbacks.ModelCheckpoint保存模型出现每个step保存一次模型的情况
tf.keras.callbacks.ModelCheckpoint保存模型出现每个step保存一次模型而不是想要的一个epoch保存一次模型,或者多个epoch保存一次模型,下面是个类的官方定义:tf.keras.callbacks.ModelCheckpoint( filepath, monitor='val_loss', verbose=0, save_best_only=False, save_weights_only=False, mode='auto', save_fre...原创 2021-07-03 17:07:43 · 2638 阅读 · 1 评论 -
图像分割中数据集处理resize的大坑!!!
最近在做语义分割,处理完数据集后训练时总是报“label out of bound”,当把Mean_IOU这个指标去掉之后能正常训练但是训练损失一直为nan,在经过一系列的检查后确定自己的代码没有问题,把目光聚焦到数据集上,终于在经过一天的搜索后,偶然看到一篇博客有类似的问题,作者指出关注一下数据集resize的时候使用的插值方式。我在处理数据集的时候只用了pillow这个处理库(这里多提一句,我们在处理图像的时候尽可能的从头至尾采用一种图像处理模块,要么全部OpenCv,要么就是Pillow或者matpl原创 2021-06-07 14:00:21 · 4801 阅读 · 15 评论 -
对于矩阵操作中axis的理解,以及axis=-1的解释
1. axis的基本使用axis常常用在numpy和tensorflow中用到,作为对矩阵(张量)进行操作时需要指定的重要参数之一。设定axis=-1,0,1...,用来指定执行操作的数据如何划分。一句话解释:设axis=i,则沿着第i个下标变化的方向进行操作![1]简单例子就不举了,其他博客有很多,这里举一个稍微复杂一点的三维矩阵的例子:设embeddings是一个shape=[3,4,5]的矩阵,如下:embeddings = [[[-0.30166972 0.25741747 ...转载 2021-05-15 14:15:16 · 1268 阅读 · 0 评论 -
训练集、验证集、测试集的划分依据
训练集、验证集、测试集作用训练集用来调试神经网络 验证集用来查看训练效果 测试集用来测试网络的实际学习能力训练集毋庸置疑,是用于模型拟合的数据样本,用来调试网络中的参数。我们容易混淆的是验证集和测试集:验证集没有参与网络参数更新的工作,按理说也能用来测试网络的实际学习能力;测试集本来也能就是用来测试效果的,按理来说也能查看训练效果。我们换个说法或者详细一些可能就会明白了:验证集(validation set): 查看模型训练的效果是否朝着坏的方向进行。验证集的作用是体现在训练的过程。举个栗转载 2021-04-09 14:41:45 · 1437 阅读 · 0 评论 -
tf.data.Dataset中.map()
在用dataset读取tfrecord的时候,看到别人的代码里面基本都有tf.data.Dataset.map()这个部分,而且前面定义了解析tfrecord的函数decord_example(example)之后,在后面的的map里面直接就dataset.map(decord_example)这样使用,并没有给example赋值。对于这点我是百思不得其解。翻了一下午的博客论坛之后,看到一个比较合理的解释,结合我自己的理解,在这里写出来:在使用dataset = tf.data.TFRecordDa.转载 2021-04-07 16:40:28 · 1026 阅读 · 0 评论 -
Kaggle数据集快速上传至Google Colab上,速度可达70MB/S+ !!!
Kaggle提供免费的GPU,但是时间是有限制的,但是Google Colab的GPU是没有时间限制的,所以本文介绍一下如何将Kaggle数据集上传到Google Colab上,如果本地上传,实在是慢,但通过Kaggle数据API式上传,在我笔记本上,上传数据的速度能达到77MB/s;要实现数据上传,只需要在Colab笔记上依次运行下面的命令即可,亲测有效:!pip install kaggleimport jsontoken = {"username":"xxxxx","key":"xxxxx转载 2021-04-01 10:05:10 · 2801 阅读 · 0 评论 -
PNG warning: iCCP: known incorrect sRGB profile
在跑深度学习训练的时候遇到这个错误,查找资料后大概明天是图片格式的原因,然后使用的一位博主提供的转换程序,成功的地将这个warning去除,感谢!原文在这里:https://blog.csdn.net/sirkang/article/details/111510462...转载 2021-01-03 18:30:24 · 1053 阅读 · 0 评论 -
keras 中的 verbose
在 fit 和 evaluate 中 都有 verbose 这个参数,下面详细说一下fit 中的 verboseverbose:日志显示verbose = 0 为不在标准输出流输出日志信息verbose = 1 为输出进度条记录verbose = 2 为每个epoch输出一行记录注意: 默认为 1 ...转载 2021-01-03 11:31:58 · 261 阅读 · 0 评论 -
tensorflow训练时警告:BaseCollectiveExecutor::StartAbort Out of range: End of sequence
在训练的时候一直有这个警告,红红的在一堆训信息中间很突兀,之前没去管它,现在决定除掉它!简单查找消息后大概知道是迭代器到了序列末尾没有停止的原因,比如训练集大小是60000,你设置的batchsize是128,那么一个epoch中会有多少个step呢?很容易计算得到60000/128=468.75,这里出现的小数,说明最后一个step的数据不够128,从输出信息可以知道最后跑了是469个step,如下,可以看到警告信息:那么一下子就想到是不是把batchsize设置成能被训练集大小整除问题就解决了.原创 2021-01-02 20:52:18 · 1429 阅读 · 0 评论 -
tf.keras.utils.plot_model绘制模型结构图里网络层的第一个维度显示‘?‘
上篇文章讲到利用plot_model绘制模型结构图时只显示一个Sequentia问题的解决方案,但是一个新的问题是模型结构图里所有网络层的第一个维度显示的都是‘?’,而不是正常的‘None’,具体情况如下:经过研究解决方法是:将D:\Anaconda3\envs\tf2\Lib\site-packages\tensorflow_core\python\keras\utils文件夹的中的vis_utils.py打开,找到下面这个函数: def format_shape(shape):.原创 2021-01-01 14:06:16 · 1114 阅读 · 5 评论 -
tf.keras.utils.plot_model绘制模型结构图只显示一个Sequential
我在利用tensorflow自带的Keras高层接口绘制模型结构图时遇到一个问题,就是输出的PNG图片中只显示Sequential,如下原因是我的网络搭建的时候网络的Input_shape放在模型 的外面,具体见下面后面我把input_shape放在Sequential里面,此时输出的模型结构图就正常了,下面这样:注意这里的network.build()里面的参数为空,因为在容器里已经指定了,现在输出的模型结构恢复正常如下:好了问题解决!...原创 2021-01-01 13:50:13 · 1345 阅读 · 7 评论