训练网络时,总出现loss=-nan和accuracy=1的情况,调整学习率(调小)也不能解决。后来发现,由于直接套用了mnist的网络学习特征的个数没有调整,卷机核个数和其他相关特征参数根据自己的数据调整完成后就好了。
遇到的问题
当时自己在使用Alexnet训练图像分类问题时,会出现损失在一个epoch中增加,换做下一个epoch时
loss
会骤然降低,一开始这个问题没有一点头绪,我数据也打乱了,使用的是tf.train.shuffle_batch
在capacity中设置一个
值
,比如是1000吧,每次取一千个数据后将这一千个数据打乱,本次使用的数据集就是每个种类1000多,而我加载数据时是一类一类加载的,这就造成了每一批次的开始可以跟前一类数据做打乱处理,但是在中间数据并不能达到充分的shuffle
在加载数据集的时候用numpy中的shuffle将数据集充分的打乱后在读入tfrecord中,之
Accuracy
、ErrorRate、Presion、Recall、AP、mAP、F1 score、F1 MACRO的理解
Accuracy
(精度)和Error Rate(错误率)
是分类模型中最常见的两种性能度量指标,既适用于二分类任务,也适用于多分类任务。
对于分类模型 f 和大小为 n测试集 D,
Accuracy
的定义为:
Accuracy
(f;D)=1n∑i=1n(f(xi)=labeli)
Accuracy
(f;D)=\frac{1}{n}\sum_{i=1}^n(f(x_i)=label_i)
True Positive(真正,TP):将正类预测为正类数
True Negative(真负,TN):将负类预测为负类数
False Positive(假正,FP):将负类预测为正类数→误报 (Type I error)
False Neg...
其中”真“、"假"说的是检查结果的对错。”真“意味着检测结果是正确的,"假"意味着检测结果是错误的。
”阳性“、"阴性"说的是这次的检查结果。阳性,意味检测出了预定的目标。阴性,意味着没查出预定的目标。
一共四种组合:
loss
= nan
把学习率调小,甚至调到0,观察
loss
,
loss
此时不应该为nan了,因为整个网络都不更新了
可能和网络初始化有关,贾洋清说初始化不好,lr=0.0001都可能很大了。。。
也有人说手动试多种初始化参数,把bias调0.1
再给个github的链接
https://github.com/BVLC/
caffe
/issues/409#issuecomment-42977
在 PyTorch 1.13 中启用 BUILD_
CAFFE
2=1 的方法如下:
1. 在编译 PyTorch 时使用环境变量 BUILD_
CAFFE
2 来指定是否启用
Caffe
2 支持。例如,在 Linux 或 MacOS 中,可以使用以下命令行来编译 PyTorch:
BUILD_
CAFFE
2=1 python setup.py install
2. 在代码中导入 PyTorch 中的
Caffe
2 模块。例如,可以使用以下代码来导入
Caffe
2 模块:
```python
import torch.
caffe
2
注意:启用 BUILD_
CAFFE
2=1 后,PyTorch 会在编译时包含
Caffe
2 的源代码,并且 PyTorch 的安装包体积会增大。
._bootstrap' has no attribute 'SourceFileLoader' 和 'socketio' has no attribute 'Server' 分析解决
前行的zhu:
FatFS f_open()函数详解
Tisfy:
C# this.Invoke()的作用与用法
OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cvtColor
yhleeboy:
tensorflow 分类损失函数问题(有点坑)
爱乐城的鸟儿: