Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Tensorflow角的拟合精度和损失都急剧增加。

Tensorflow角的拟合精度和损失都急剧增加。
EN

Data Science用户
提问于 2020-05-24 02:41:13
回答 2查看 619关注 0票数 1

ubuntu - 20.04

tensorflow 2.2

使用的数据集= MNIST

我正在测试tensorflow,我注意到验证sparse_categorical_accuracy (准确性)和验证SparseCategoricalCrossentropy (损失)都在增加,这对我来说是没有意义的。我认为验证损失应该是下降的,验证的准确性随着培训的进展而增加。或者,在过度安装的情况下,验证损失增加,验证精度下降。但是,验证损失和验证的准确性都随着培训的进展而增加。然而,训练进度是按预期进行的,即训练损失下降,训练精度上升。

下面是代码和输出:

代码语言:javascript
运行
AI代码解释
复制
#testing without preprocess monsoon
import tensorflow as tf
from tensorflow import keras as k
from tensorflow.keras import layers as l
import tensorflow_addons as tfa

mnist = tf.keras.datasets.mnist
(x_t,y_t),(x_te,y_te) = mnist.load_data()
x_t = x_t.reshape(60000,-1)
x_te = x_te.reshape(10000,-1)

d_x_t = tf.data.Dataset.from_tensor_slices(x_t)
d_y_t = tf.data.Dataset.from_tensor_slices(y_t)
dataset = tf.data.Dataset.zip((d_x_t,d_y_t)).shuffle(1000).batch(32)

d_x_te = tf.data.Dataset.from_tensor_slices(x_te)
d_y_te = tf.data.Dataset.from_tensor_slices(y_te)
dataset_test = tf.data.Dataset.zip((d_x_te,d_y_te)).shuffle(1000,seed=42).batch(32)

inp = k.Input((784,))
x = l.BatchNormalization()(inp)
x1 = l.Dense(1024,activation='relu',name='dense_1')(x)
x1=l.Dropout(0.5)(x1)
x1 = l.BatchNormalization()(x1)
x2 = l.Dense(512,activation='relu',name='dense_2')(x1)
x3 = l.Dense(512,activation='relu',name='dense_3')(x)
x = x3+x2

x=l.Dropout(0.5)(x)
x = l.BatchNormalization()(x)
x = l.Dense(10,activation='relu',name='dense_4')(x)
predictions = l.Dense(10,activation=None,name='preds')(x)
model = k.Model(inputs=inp,outputs=predictions)

opt=tfa.optimizers.MovingAverage(
    k.optimizers.Adam(),
    True,
    0.99,
    None,
    'MovingAverage',
    clipnorm=5
)

model.compile(optimizer=opt,
              loss=k.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['sparse_categorical_accuracy'])
print('# Fit model on training data')
history = model.fit(dataset,
                    epochs=30,
                    steps_per_epoch=1875,
                    validation_data = dataset_test,
                    validation_steps = 313)

print('\nhistory dict:', history.history)
model.evaluate(dataset_test,batch_size=32,steps=331)

我得到的学习进化是:

代码语言:javascript
运行
AI代码解释
复制
# Fit model on training data
Epoch 1/30
WARNING:tensorflow:From /home/nitin/anaconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow/python/ops/resource_variable_ops.py:1817: calling BaseResourceVariable.__init__ (from tensorflow.python.ops.resource_variable_ops) with constraint is deprecated and will be removed in a future version.
Instructions for updating:
If using Keras pass *_constraint arguments to layers.
1875/1875 [==============================] - 49s 26ms/step - loss: 0.3614 - sparse_categorical_accuracy: 0.8913 - val_loss: 0.3355 - val_sparse_categorical_accuracy: 0.9548
Epoch 2/30
1875/1875 [==============================] - 49s 26ms/step - loss: 0.1899 - sparse_categorical_accuracy: 0.9427 - val_loss: 1.2028 - val_sparse_categorical_accuracy: 0.9641
Epoch 3/30
1875/1875 [==============================] - 51s 27ms/step - loss: 0.1546 - sparse_categorical_accuracy: 0.9521 - val_loss: 1.6385 - val_sparse_categorical_accuracy: 0.9673
Epoch 4/30
1875/1875 [==============================] - 38s 20ms/step - loss: 0.1357 - sparse_categorical_accuracy: 0.9585 - val_loss: 2.8285 - val_sparse_categorical_accuracy: 0.9697
Epoch 5/30
1875/1875 [==============================] - 38s 20ms/step - loss: 0.1253 - sparse_categorical_accuracy: 0.9608 - val_loss: 3.8489 - val_sparse_categorical_accuracy: 0.9697
Epoch 6/30
1875/1875 [==============================] - 29s 16ms/step - loss: 0.1149 - sparse_categorical_accuracy: 0.9646 - val_loss: 2.1872 - val_sparse_categorical_accuracy: 0.9699
Epoch 7/30
1875/1875 [==============================] - 29s 16ms/step - loss: 0.1094 - sparse_categorical_accuracy: 0.9646 - val_loss: 2.9429 - val_sparse_categorical_accuracy: 0.9695
Epoch 8/30
1875/1875 [==============================] - 29s 16ms/step - loss: 0.1066 - sparse_categorical_accuracy: 0.9667 - val_loss: 5.6166 - val_sparse_categorical_accuracy: 0.9710
Epoch 9/30
1875/1875 [==============================] - 30s 16ms/step - loss: 0.0991 - sparse_categorical_accuracy: 0.9688 - val_loss: 3.9547 - val_sparse_categorical_accuracy: 0.9710
Epoch 10/30
1875/1875 [==============================] - 29s 16ms/step - loss: 0.0948 - sparse_categorical_accuracy: 0.9701 - val_loss: 4.8149 - val_sparse_categorical_accuracy: 0.9713
Epoch 11/30
1875/1875 [==============================] - 29s 16ms/step - loss: 0.0850 - sparse_categorical_accuracy: 0.9727 - val_loss: 7.4974 - val_sparse_categorical_accuracy: 0.9712
Epoch 12/30
1875/1875 [==============================] - 29s 16ms/step - loss: 0.0879 - sparse_categorical_accuracy: 0.9719 - val_loss: 4.3669 - val_sparse_categorical_accuracy: 0.9714
Epoch 13/30
1875/1875 [==============================] - 30s 16ms/step - loss: 0.0817 - sparse_categorical_accuracy: 0.9743 - val_loss: 9.2499 - val_sparse_categorical_accuracy: 0.9725
Epoch 14/30
1875/1875 [==============================] - 30s 16ms/step - loss: 0.0805 - sparse_categorical_accuracy: 0.9737 - val_loss: 7.5436 - val_sparse_categorical_accuracy: 0.9716
Epoch 15/30
1875/1875 [==============================] - 30s 16ms/step - loss: 0.0798 - sparse_categorical_accuracy: 0.9751 - val_loss: 14.2331 - val_sparse_categorical_accuracy: 0.9712
Epoch 16/30
1875/1875 [==============================] - 29s 16ms/step - loss: 0.0745 - sparse_categorical_accuracy: 0.9757 - val_loss: 7.9517 - val_sparse_categorical_accuracy: 0.9715
Epoch 17/30
1875/1875 [==============================] - 30s 16ms/step - loss: 0.0745 - sparse_categorical_accuracy: 0.9761 - val_loss: 7.9719 - val_sparse_categorical_accuracy: 0.9702
Epoch 18/30
1875/1875 [==============================] - 30s 16ms/step - loss: 0.0741 - sparse_categorical_accuracy: 0.9763 - val_loss: 13.8696 - val_sparse_categorical_accuracy: 0.9665
Epoch 19/30
1875/1875 [==============================] - 30s 16ms/step - loss: 0.0728 - sparse_categorical_accuracy: 0.9760 - val_loss: 20.2949 - val_sparse_categorical_accuracy: 0.9688
Epoch 20/30
1875/1875 [==============================] - 45s 24ms/step - loss: 0.0699 - sparse_categorical_accuracy: 0.9775 - val_loss: 8.8696 - val_sparse_categorical_accuracy: 0.9713
Epoch 21/30
1875/1875 [==============================] - 29s 16ms/step - loss: 0.0699 - sparse_categorical_accuracy: 0.9777 - val_loss: 12.9682 - val_sparse_categorical_accuracy: 0.9723
Epoch 22/30
1875/1875 [==============================] - 30s 16ms/step - loss: 0.0674 - sparse_categorical_accuracy: 0.9781 - val_loss: 61.1677 - val_sparse_categorical_accuracy: 0.9692
Epoch 23/30
1875/1875 [==============================] - 30s 16ms/step - loss: 0.0651 - sparse_categorical_accuracy: 0.9798 - val_loss: 21.3270 - val_sparse_categorical_accuracy: 0.9697
Epoch 24/30
1875/1875 [==============================] - 31s 16ms/step - loss: 0.0624 - sparse_categorical_accuracy: 0.9800 - val_loss: 62.2778 - val_sparse_categorical_accuracy: 0.9685
Epoch 25/30
1875/1875 [==============================] - 30s 16ms/step - loss: 0.0665 - sparse_categorical_accuracy: 0.9792 - val_loss: 24.9327 - val_sparse_categorical_accuracy: 0.9687
Epoch 26/30
1875/1875 [==============================] - 46s 24ms/step - loss: 0.0605 - sparse_categorical_accuracy: 0.9805 - val_loss: 42.0141 - val_sparse_categorical_accuracy: 0.9700
Epoch 27/30
1875/1875 [==============================] - 29s 16ms/step - loss: 0.0601 - sparse_categorical_accuracy: 0.9806 - val_loss: 54.8586 - val_sparse_categorical_accuracy: 0.9695
Epoch 28/30
1875/1875 [==============================] - 30s 16ms/step - loss: 0.0583 - sparse_categorical_accuracy: 0.9811 - val_loss: 25.3613 - val_sparse_categorical_accuracy: 0.9680
Epoch 29/30
1875/1875 [==============================] - 29s 16ms/step - loss: 0.0576 - sparse_categorical_accuracy: 0.9811 - val_loss: 23.2299 - val_sparse_categorical_accuracy: 0.9710
Epoch 30/30
1875/1875 [==============================] - 30s 16ms/step - loss: 0.0566 - sparse_categorical_accuracy: 0.9817 - val_loss: 16.5671 - val_sparse_categorical_accuracy: 0.9728

history dict: {'loss': [0.36135926842689514, 0.1898646354675293, 0.15456895530223846, 0.13569727540016174, 0.12525275349617004, 0.1148592159152031, 0.10943067818880081, 0.1066298857331276, 0.09912335127592087, 0.09476170688867569, 0.08501157909631729, 0.0879492461681366, 0.08170024305582047, 0.08047273010015488, 0.07976552098989487, 0.07453753799200058, 0.07450901716947556, 0.07413797080516815, 0.07278618961572647, 0.0698995441198349, 0.06988336145877838, 0.06740442663431168, 0.06507138162851334, 0.06242847815155983, 0.0665266141295433, 0.06050613150000572, 0.06005210056900978, 0.05830719694495201, 0.05763527378439903, 0.05664650723338127], 'sparse_categorical_accuracy': [0.8913000226020813, 0.9427499771118164, 0.9521499872207642, 0.9585333466529846, 0.9607999920845032, 0.9645500183105469, 0.9645666480064392, 0.9666833281517029, 0.9687666893005371, 0.9701166749000549, 0.9726999998092651, 0.9719499945640564, 0.9742666482925415, 0.9736999869346619, 0.9750999808311462, 0.9757000207901001, 0.9760833382606506, 0.9763166904449463, 0.9759833216667175, 0.977483332157135, 0.9777166843414307, 0.9780833125114441, 0.9798333048820496, 0.9800000190734863, 0.9792333245277405, 0.9805499911308289, 0.9805999994277954, 0.9810666441917419, 0.9810666441917419, 0.9816833138465881], 'val_loss': [0.33551061153411865, 1.2028071880340576, 1.6384732723236084, 2.828489065170288, 3.8488738536834717, 2.187160015106201, 2.9428975582122803, 5.6166462898254395, 3.954725503921509, 4.814915657043457, 7.4974141120910645, 4.366909503936768, 9.24986457824707, 7.543578147888184, 14.233136177062988, 7.951717853546143, 7.971870422363281, 13.869564056396484, 20.29490089416504, 8.869643211364746, 12.968180656433105, 61.167701721191406, 21.327049255371094, 62.27778625488281, 24.932708740234375, 42.01411437988281, 54.85857009887695, 25.361297607421875, 23.229896545410156, 16.56712532043457], 'val_sparse_categorical_accuracy': [0.954800009727478, 0.9641000032424927, 0.9672999978065491, 0.9696999788284302, 0.9696999788284302, 0.9699000120162964, 0.9695000052452087, 0.9710000157356262, 0.9710000157356262, 0.9713000059127808, 0.9711999893188477, 0.9714000225067139, 0.9725000262260437, 0.9715999960899353, 0.9711999893188477, 0.9714999794960022, 0.9702000021934509, 0.9664999842643738, 0.9688000082969666, 0.9713000059127808, 0.9722999930381775, 0.9692000150680542, 0.9696999788284302, 0.968500018119812, 0.9686999917030334, 0.9700000286102295, 0.9695000052452087, 0.9679999947547913, 0.9710000157356262, 0.9728000164031982]}
302/331 [==========================>...] - ETA: 0s - loss: 17.1192 - sparse_categorical_accuracy: 0.9725WARNING:tensorflow:Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches (in this case, 331 batches). You may need to use the repeat() function when building your dataset.
313/331 [===========================>..] - 1s 3ms/step - loss: 16.5671 - sparse_categorical_accuracy: 0.9728
[16.567113876342773, 0.9728000164031982]
```
代码语言:javascript
运行
复制
EN

回答 2

Data Science用户

发布于 2020-05-24 04:58:39

通常情况下,这是由于学习率太高,它通过损失函数的最小,并开始超调。当然,我不能肯定这就是原因,但这是我最好的猜测。

尝试简化优化器,单独使用Adam()优化器(没有移动平均值),并设置相当小的学习速率,比如0.001甚至0.0001。让我们看看进展如何,让我们知道。

票数 0
EN

Data Science用户

发布于 2020-05-24 05:31:03

你在这里太适应了。对于简单的MNIST数据集来说,这是一个相当复杂的网络。分离MNIST类是相当容易的,所以即使你的网络在验证集上表现得越来越差--它越来越不确定正确的答案,更多地相信错误的答案--最可能的类仍然几乎总是正确的。准确性是最大概率的函数,损失是它们的函数。我会在这里使用val_loss来决定提前停止训练。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/74742

复制
相关文章
在 Ubuntu 中 安装python
virtualenvwrapper: 基于 virtualenv 之上的一个工具,通过它可以方便的创建/激活/管理/销毁虚拟环境,没它的话进行上面的操作将会相当麻烦。
py3study
2020/01/09
2.4K0
在Linux/CentOS中编译安装Python
心血来潮,想学习一下Python,听说用来做爬虫还不错。先从运行环境开始入手,CentOS中已经内置了Python,但版本似乎比较老,通过python -V命令看到版本是2.4.3。目前Python 2.x的最新版本号是2.7.8,那么就开始动手升级一下。
魏杰
2022/12/23
7390
在docker中解决软件动态库问题 & 安装opencv_python
本文由腾讯云+社区自动同步,原文地址 https://stackoverflow.club/docker/dynamic_lib_in_docker_opencv/
羽翰尘
2019/11/20
2.4K0
在 python3.x中安装 Crypt
1.0 安装: 直接找过来 whl 安装:https://pan.baidu.com/s/1ZYQp4Knwk-Bcr9hmx9IPyA pip安装:pip install pycrypto-2.6.1-cp36-cp36m-win_amd64.whl
py3study
2020/01/20
1.5K0
在VMware环境安装Ubuntu Server中遇到的无法安装问题
我们项目最近在测试pihole dns, 所以想要安装Ubuntu Server测试,结果发现报错。
繁华是客
2023/03/03
4.9K0
在Mac OS系统中安装Python教程
在进入工作岗位之后会有很多公司为开发人员提供Mac OS系统的电脑,所以这篇文章帮大家下载安装一下Mac OS系统下的python开发环境。
python自学网
2021/11/28
1.7K0
在Mac OS系统中安装Python教程
在docker中安装python依赖库/模块
我们一般如何处理软件的运行环境问题?一般上,即使用docker,我们的python脚本还是不可避免地需要安装额外的库。而每添加一个库都制作一个新的docker,这会是一个灾难。有必要寻找一种更优雅的解决方案。
羽翰尘
2019/11/20
12.3K0
在CentOS7中安装python3.7
下载python3.7.0的安装包至/usr/local/src/目录,切换至/usr/local/src/目录:
py3study
2020/01/10
9930
在Python中处理CSV文件的常见问题
当谈到数据处理和分析时,CSV(Comma-Separated Values)文件是一种非常常见的数据格式。它简单易懂,可以被绝大多数编程语言和工具轻松处理。在Python中,我们可以使用各种库和技巧来处理CSV文件,让我们一起来了解一些常见问题和技巧吧!
华科云商小孙
2023/09/25
6300
在全新的Ubuntu中安装Python3 环境
在全新的Ubuntu 18.04中已经自带了Python 3。但是这个Python环境并不完整,需要补充安装下面几个模块。
青南
2018/10/18
1.1K0
怎么在python中安装matplotlib_matplotlib依赖库
2.虽然下载Python的时候自带有pip,但这里更新一下pip,输入更新pip命令:
全栈程序员站长
2022/09/27
1.8K0
怎么在python中安装matplotlib_matplotlib依赖库
node-sass 在 jenkins 中因为权限无法安装的问题
我使用 whoami 输出执行命令的用户是 root,但是 node 执行安装node-sass时调用了 mkdir 以及调用 binding.node 没有权限。然后试了一下使用 sudo 来执行 rebuild node-sass ,就成功了。这是我的日志:
前Thoughtworks-杨焱
2022/02/19
2.5K0
在VirtualBox中安装ArchLinux
乐百川
2018/01/09
3K0
在Linux中安装JDK
JDK安装包 下载地址:http://www.oracle.com/technetwork/java/javase/archive-139210.html
CoderJed
2018/09/13
5.2K0
在docker中安装phpmyadmin
其中,PMA_HOST和PMA_PORT填写的内容是MySQL数据库的地址和端口号
灯珑LoGin
2022/10/31
2.1K0
在vmware中安装Android
首先可以前往https://osdn.net/projects/android-x86/下载自己喜欢的镜像,这里以安卓9的镜像为例
阿龙w
2022/12/25
2.8K0
在vmware中安装Android
在Anaconda中安装OpenCV
本人使用的是win10系统,anaconda版本为4.7.12,python版本为3.7.4
全栈程序员站长
2022/07/22
2K0
在Anaconda中安装OpenCV
在 CentOS 中安装 MySQL
安装 MySQL 8.0 时,会自动为 root 用户生成一个临时密码,并记录在日志文件里。请使用以下命令查看 root 用户的临时密码:
不惑
2023/09/23
3.2K0
在ArchLinux中安装MySql
最近在用ArchLinux在虚拟机里学习Linux。现在想在ArchLinux中安装WordPress,首先就需要安装MySql数据库。但是在MySql被Oracle收购之后,很多开源支持者就转而使用MariaDb了。不过MariaDb也和MySql兼容的,所以基本不用有什么担心。由于ArchLinux只带了MariaDb,所以我们就用MariaDb来代替MySql。
乐百川
2022/05/05
1.5K0
在Ubuntu中安装Hadoop
在装Hadoop之前首先需要:  1.java1.6.x 最好是sun的,1.5.x也可以  2.ssh 安装ssh $ sudo apt-get install ssh $ sudo apt-get install rsync 下载Hadoop  从http://Hadoop.apache.org/core/releases.html 下载最近发布的版本  最好为Hadoop创建一个用户:  比如创建一个group为Hadoop user为Hadoop的用户以及组 $ sudo addgroup Ha
闵开慧
2018/03/30
1.5K0

相似问题

在Python中安装netfilterque的问题

18

在Python中安装matplotlib的问题

43

在Linux / CentOS中安装Python的问题

23

在Python中安装TabNet的问题(Anaconda)

10

在GCP中安装python需求的问题

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档