使用jcmd对JVM进程进行查询及管理
jcmd
是 Java 开发工具包(JDK)中提供的一个多功能工具,它可以用于发送诊断命令请求到 Java 虚拟机(JVM)。这些命令涵盖了从性能监控、线程堆栈跟踪到堆转储等多个方面,使得 jcmd
成为 JVM 管理和性能分析中非常强大的工具。以下是一些 jcmd
的常用功能:
jcmd
是 Java 开发工具包(JDK)中提供的一个多功能工具,它可以用于发送诊断命令请求到 Java 虚拟机(JVM)。这些命令涵盖了从性能监控、线程堆栈跟踪到堆转储等多个方面,使得 jcmd
成为 JVM 管理和性能分析中非常强大的工具。以下是一些 jcmd
的常用功能:
asitop
是一个用于监视 Apple Silicon Macs 性能的命令行工具,包括 CPU、GPU、ANE(Apple Neural Engine)的使用率,以及功耗和温度信息。它提供了一个实时更新的界面,可以让用户了解系统的性能状态。安装 asitop
的步骤如下:
之前一直用CIFAR-10的数据做训练。这个数据已经内置到Keras
里了,所以拉取数据很方便,只需要一行cifar10.load_data()
即可。但是在实际工作中,最终肯定还是用自己的图片作为素材进行训练,所以这次决定下载Animals-10作为训练素材。
我们先来回顾一下上一次的训练结果:
可以看到在训练不到20
批的时候,训练精度就与测试精度分道扬镳了。这算是一种过拟合。目前我们手上的工具箱也就剩数据增强
还没用了。理论上数据增强
可以弥补训练集
太小的问题,从而缓解过拟合
的现象。实话说,在实际操作中,这种方法已经被检验过有效了。但是总给人一种用一种机器去欺骗另一种机器
的感觉,我个人觉得,机械化
的数据增强
应该早晚被更优秀的训练模型所取代。
在不借助数据增强的情况下,我们已经一路把验证精度从70%
多提升到了80%
的水平,今天,我们借助BatchNormalization
可以进一步把精度提升到超过85%
。话不多说,先看结果:
在苹果M1
系列芯片上运行tensorflow
是可以通过插件tensorflow-metal
进行GPU
训练加速的,并且随着操作系统的升级以及插件的不断完善,M1
的训练性能正在稳步提高,这也是苹果官方推荐的做法。
这次继续,在原来网络的基础上,加深了卷积层的数量,从原来的3层卷积,加深到了6层。核心代码如下:
model = models.Sequential() |
之前用VGG16
训练了一次CIFAR10
数据集,我还说用VGG16
会有一个不错的起点呢,毕竟是业界训练好的模型嘛。结果今天用自建的卷积神经网络一测,结果出乎意料,自建的神经网络虽然训练精度的上升没有之前的快,但是验证精度也能达到75%
的水平,跟上次区别不大。同时,虽然这次迭代次数有增加,但是得益于模型简化了许多,训练速度也提升了不少。话不多说,上结果: