常用的一些工具类

每秒百万级高效C++异步日志实践 每秒百万级高效C++异步日志实践 RING LOG是一个适用于C++的异步日志, 其特点是效率高(实测每秒支持125+万日志写入)、易拓展,尤其适用于频繁写日志的场景 阅读详情

安卓基础开发库,让开发简单点。
DevRing & Demo地址:https://github.com/LJYcoder/DevRing

前言

几乎每个项目都会有各种各样的工具类,在开发中通过它们可更直接方便地实现功能。下面将介绍一些比较常用的工具类,而具体的实现请下载demo查看代码。


介绍

1. Log打印

demo中提供了RingLog工具类(出自ZhaoKaiQiang),和普通的Log一样包含Verbose、Debug、Info、Warn、Error、Assert几个等级,还支持将json或xml文本格式化后输出。
使用:
1)控制是否打印。正式打包上线时可设为false:

RingLog.init(true);

2)打印

//比如打印Error级日志
RingLog.e(TAG, message);

//将jsonString格式化后打印出来
RingLog.json(TAG, jsonString);

//将xmlString格式化后打印出来
RingLog.xml(TAG, xmlString);

这个Log工具类一个很大的好处是,你可以快速地跟踪到调用打印的具体位置。如图:
Log跟踪1

点击MoviePresenter即可定位到输出打印的位置

Log跟踪2

2. 崩溃打印

demo中提供了CrashDiary工具类,用于在程序崩溃时,输出异常日志到手机本地文件中,方便在没连接电脑时查看异常信息。可指定异常信息所输出的文件(位置)

程序崩溃时,即可到对应的位置下查看异常信息,如图:
查看崩溃日志1

查看崩溃日志2

3. 手机系统类型

demo中提供了SystemTypeUtil工具类,用于处理与手机系统类型相关的事件。
部分手机的系统是基于原生Android系统改造的(如小米,魅族),所以在有些功能的实现上需要做兼容处理,如设置状态栏中图文的颜色模式、跳转到权限管理页面。

  • 判断手机类型
boolean flag;
flag = SystemTypeUtil.isEMUI();//是否为华为手机
flag = SystemTypeUtil.isMIUI();//是否为小米手机
flag = SystemTypeUtil.isFlyme();//是否为魅族手机
  • 跳转到权限管理页面
//跳转,兼容不同手机系统类型
SystemTypeUtil.goToPermissionManager(context);
  • 设置状态栏中图文的颜色模式(深色模式或亮色模式)
boolean isDark = true;//true表示深色模式,false表示亮色模式
Window window = getWindow();
boolean flag = SystemTypeUtil.setStatusBarLightMode(window, isDark);//返回true表示设置成功

深色模式效果图:
深色模式
亮色模式效果图:
亮色模式

4. android 6.0权限申请

android6.0后(targetSdkVersion>=23)对于敏感权限,app需要向用户提出授权申请。
demo中提供了PermissionManager用于6.0版本的权限申请,使用RxPermisiion实现。

这里说下一般的申请流程:
1)在 AndroidManifest.xml 添加权限声明。
2)使用 checkSelfPermission 检查某个权限是否已经申请。
3)权限未申请,使用 requestPermissions 申请权限,然后会回调onRequestPermissionsResult。
4)在 onRequestPermissionsResult 回调中判断权限是否申请成功。
5)如果申请失败,则使用 shouldShowRequestPermissionRationale 判断用户是否勾选了 “不再提醒”。勾选了的话,则弹出一个 Dialog 引导用户到设置界面授予权限。没勾选的话,可以什么都不做,也可以弹出弹出一个 Dialog 引导用户到设置界面授予权限。

5. 网络状态

demo中提供了NetworkUtil工具类,用于查询网络状态

//当前网络是否可用,返回true表示可用,false表示不可以用
NetworkUtil.isNetWorkAvailable(context);

//当前网络是否为wifi网络,返回true表示是,false表示不是
NetworkUtil.isWifiConnected(context);

//当前网络是否为手机移动网络,返回true表示是,false表示不是
NetworkUtil.isMobileConnected(context);

...

6. File相关

demo中提供了FileUtil工具类,用于处理File相关的操作

  • SD卡是否能用
FileUtil.isSDCardAvailable();
  • 创建文件夹
/**
* 创建一个文件夹, 存在则返回, 不存在则新建
*
* @param String parentDirectory 父目录路径
* @param String directory  目录名
* @return 文件,null代表失败
*/
FileUtil.getDirectory(parentDirectory, directory);

/**
 * 创建一个文件夹, 存在则返回, 不存在则新建
 *
 * @param File parentDirectory 父目录
 * @param String directory  目录名
 * @return 文件,null代表失败
 */
 FileUtil.getDirectory(parentDirectory, directory)
  • 创建文件
/**
 * 创建一个文件, 存在则返回, 不存在则新建
 *
 * @param File catalog 父目录
 * @param String name    文件名
 * @return 文件,null代表失败
 */
 FileUtil.getFile(catalog, name);

/**
* 根据全路径创建一个文件
*
* @param filePath 文件全路径
* @return 文件,null代表失败
*/
FileUtil.getFile(filePath);
  • 删除文件
/**
* 删除文件/文件夹
* 如果是文件夹,则会删除其下的文件以及它本身
* @param file file
* @return true代表成功删除
*/
FileUtil.deleteFile(file);
  • 计算文件大小
/**
 * 计算文件/文件夹的大小
 * @param file 文件或文件夹
 * @return long 文件大小
 */
FileUtil.calculateFileSize(file);
  • 获取系统提供的文件夹路径
//返回"/data"目录
FileUtil.getDataDirectory();

//返回"/storage/emulated/0"目录
FileUtil.getExternalStorageDirectory();

//返回"/system"目录
FileUtil.getRootDirectory();

//返回"/cache"目录
FileUtil.getDownloadCacheDirectory();

//返回"/data/user/0/com.xxx.xxx/cache"目录
FileUtil.getCacheDir();

//返回"/data/user/0/com.xxx.xxx/files"目录
FileUtil.getFilesDir();

//返回"/storage/emulated/0/Android/data/com.xxx.xxx/cache"目录
FileUtil.getExternalCacheDir();

/**
 * @param String type 所放的文件的类型,传入的参数是Environment类中的DIRECTORY_XXX静态变量
 * @return 返回"/storage/emulated/0/xxx"目录
 *         例如传入Environment.DIRECTORY_ALARMS则返回"/storage/emulated/0/Alarms"
 */
FileUtil.getExternalStoragePublicDirectory(type);

/**
 * @param String type 所放的文件的类型,传入的参数是Environment类中的DIRECTORY_XXX静态变量
 * @return  返回"/storage/emulated/0/Android/data/com.xxx.xxx/files/Alarms"目录
 *          例如传入Environment.DIRECTORY_ALARMS则返回"/storage/emulated/0/Android/data/com.xxx.xxx/files/Alarms"
 */
FileUtil.getExternalFilesDir(type);

7. Activity栈管理

demo中提供了ActivityStackManager工具类,用于存放管理Activity栈。
使用流程:
1.在activity创建时调用pushOneActivity(Activity activity)推入栈,可放于Activity基类中

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mStackManager = ActivityStackManager.getInstance();
    mStackManager.pushOneActivity(this);
}

2.在activity销毁时调用popOneActivity(Activity activity)弹出栈,可放于Activity基类中

@Override
protected void onDestroy() {
    mStackManager.popOneActivity(this);
    super.onDestroy();
}

3.当你想要退出某个Activity时,可调用exitActivity(Class cls)

mStackManager.exitActivity(CollectActivity.class);

4.当你想要退出整个应用(所有Activity)时,可调用exitApplication()

mStackManager.exitApplication();

还提供了其他方法,具体请查看demo代码

8. 缓存

demo中提供了CacheManager,里面提供了内存缓存、磁盘缓存、SharedPreferences缓存。 其中磁盘缓存可定制缓存时长、位置、大小。
使用方法就是拿到相关的缓存管理,然后进行put和get操作。

9. Toast

demo中提供了RingToast工具类,方便吐司。
使用流程
1.Application中初始化

RingToast.init(this);//初始化吐司

2.在要吐司的地方调用show

RingToast.show("hello world");

RingToast.show(R.string.appName);

10. 密度单位转换

demo提供了DensityUtil工具类,用于密度单位的转换

  • px转dp
int dp = DensityUtil.px2dp(context, px);
  • dp转px
int px = DensityUtil.dp2px(context, dp);
  • sp转px
int px = DensityUtil.sp2px(context, sp);
  • px转sp
int sp = DensityUtil.px2sp(context, px);

11. ImageUtil

demo中提供了图片工具类,用于对图片进行压缩(比例压缩或质量压缩)、跳转到相机/相册、对Bitmap做高斯模糊处理等。

//从相机获取图片
ImageUtil.getImageFromCamera(context, mPhotoUri);
//从相册获取图片
ImageUtil.getImageFromAlbums(context);
//裁减图片为500*500尺寸,并且压缩图片为不大于3M的大小
bitmap = ImageUtil.qualityCompress(ImageUtil.scaleCompress(mFilePath, 500, 500), 3 * 1024);
...

12. 加密

demo中提供了EncryptUtil工具类,用于md5加密和sha1加密。

  • md5加密
String encrpt = EncryptUtil.md5Crypt(password.getBytes());
//加盐值
String encrpt = EncryptUtil.md5Crypt(password.getBytes(),salt);
  • sha1加密
String encrpt = EncryptUtil.sha1Crypt(password.getBytes());
//加盐值
String encrpt = EncryptUtil.sha1Crypt(password.getBytes(),salt);

13. 状态栏/导航栏颜色

提供了ColorBar工具类,用于沉浸式状态栏实现,来自https://github.com/Zackratos/UltimateBar,具体用法到里面查阅。

14. 其他

demo中还提供了一个CommonUtil,负责一些比较杂碎的功能,例如

  • 获取设备唯一ID号
String deviceId = CommonUtil.getDeviceUniqueId(context);
  • 创建/删除桌面快捷方式
//创建
CommonUtil.creatShortcut(context);
//删除
CommonUtil.delShortcut(context);
  • 扩展View的触摸范围
//扩大view上下左右10个单位触摸的范围
CommonUtil.expandViewTouchDelegate(view,10,10,10,10);
  • …

另外,BlankJ提供了一个各种工具类的开源项目,大家各取所需吧。
https://github.com/Blankj/AndroidUtilCode/blob/master/README-CN.md


cpp-RINGLOG是一个高效简洁的C异步日志 RING LOG是一个高效简洁的C 异步日志, 其特点是效率高(每秒支持125 万日志写入)、易拓展,尤其适用于频繁写日志的场景 立即下载

相关推荐

光伏系统选型指南:5种主流MPPT算法优缺点对比(附选型流程图)

本文深入剖析了光伏系统中五种主流MPPT算法的核心原理与性能差异。通过对比扰动观察法、电导增量法、恒定电压法、模糊逻辑控制及人工智能算法在追踪精度、响应速度、实现成本与稳定性等方面的表现,为不同应用场景(如户用、工商业及大型电站)提供了清晰的选型决策流程图和实战指南,帮助工程师优化系统效率与投资回报。

weixin_29294597的博客 106

【C++模块实现】| 【02】日志系统优化

代码】【C++模块实现】|【02】日志系统优化。

weixin_45926547的博客 822

使用sklearn学习多项式回归(三)

1,什么是线性 我们无数次提到”线性“这个名词。在支持向量机中,我们也曾经提到最初的支持向量机只能够分割线性可分的数据,然后引入了”核函数“来帮助我们分类那些非线性可分的数据。我们也曾经说起过,比如说决策树,支持向量机是”非线性“模型。所有的这些概念,让我们对”线性“这个词非常熟悉,却又非常陌生——因为我们并不知道它的真实含义。接下来我们看看线性回归模型改进的核心之一:帮助线性回归解决非线性问题。 1.1,变量之间的线性关系 ”线性“这个词用于描述不同事物时有着不同的含义。我们最常使用的线性是指“变量

理科男同学 5100

总结的一些Java公用函数库

最新内容建议直接访问原文:Android常用的工具类   主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java。目前包括HttpUtils、DownloadManagerPro、ShellUtils、PackageUtils、PreferencesUtils、JSONUtils、FileUtils、ResourceUtils、StringUtils、ParcelUtil...

微信号codek2 专注于 Android 开源项目源码解析 开源项目分享 887

PBR:双向反射分布函数(BRDF)介绍与Cook-Torrance模型的实现

PBR:双向反射分布函数(BRDF)介绍与Cook-Torrance模型的实现 BRDF简介 再介绍BRDF之前我们要引入渲染方程这个东西: 其中L表示辐射率,其公式为: 它表示了一个拥有辐射强度Φ的光源在单位面积A,单位立体角ω上的辐射出的总能量。 辐射率是辐射度量学上表示一个区域平面上光线总量的物理量,它受到入射光线与平面法线间的夹角θ的余弦值cosθ的影响:当直接...

小龙虾的博客 1万+

uniapp 开发微信小程序请求问题 , 真机调试正常,开发工具正常,但是使用扫码预览接口都是不通的,发布到体验版也是请求失败

uniapp开发小程序体验版接口请求失败(真机可以)

weixin_60408555的博客 3954

AndroidUtil - 强大易用的安卓工具类库

utilcode,其中的工具类是开发中常用到的;subutil,它包含的工具类并不是很常用,它的出现是为了防止主工具类的臃肿。utilcode。

一个IT人的技术成长历程。 3423

JAVA之常用的工具类

目录 1 org.apache.commons.io.IOUtils 2 org.apache.commons.io.FileUtils 3org.apache.commons.lang.StringUtils 4 org.apache.http.util.EntityUtils 5 org.apache.commons.lang3.StringUtils 6 org.apache....

上善若泪 3万+

ArcGIS属性表汉字转拼音

接着我安装了一个编辑器“PyCharm Community Edition 2019.3.3\bin\pycharm64.exe”,在里面添加“pypinyin”包,然后将其设置为arcgis的编辑器和调试程序,还是失败;我在10.6的机器上折腾了上面几步,直到两周后脚本突然运行成功,我也不确定是哪一步导致pypinyin包配置成功,因此将心得体会写出来,如果过一段时间,打开10.2的机器运行脚本成功了,再写后续.......,按照“配置方法1:”进行尝试,显示配置失败。

2301_77413856的博客 1295

独立游戏之路:Tap篇 -- 个人开发者上架TapTap步骤和注意事项

作为一名游戏开发者,将自己的独立游戏上架到 TapTap 平台是一个不错的选择。TapTap 是一个拥有大量用户的游戏社区平台,上架游戏可以让更多的玩家发现和体验你的游戏。TapTap 是一个游戏社区平台,用户可以在平台上下载和分享游戏。TapTap 拥有大量的用户,并且用户活跃度高,这为独立游戏开发者提供了一个很好的展示和推广平台。进入TapTap开发者服务后台。

陈言必行 -- Unity游戏开发领域优质博主 6408

java项目常用的工具类

java项目开发工具类拒绝过度封装,本文简单介绍了项目中常用的关于对象、集合、数组、Map等操作的工具类,开箱即用,值得拥有。

qq_43016560的博客 1230

【ARM CoreLink 系列 7 -- TZC-400控制器简介】

为了确保内存能够正确识别总线的信号控制位,新增一个TrustZone地址空间控制器(TrustZone Address Space Controller,TZASC)组件来实现对内存地址的安全扩展,将内存区域划分为安全内存区域和非安全内存区域,安全世界可以访问安全内存和非安全内存,而普通世界只能访问非安全内存,如下图所示:图 1-1内存区域的划分是在系统启动时通过配置 TZASC 组件(TZC-400/TZC-380)来实现的。TZC-400由和使能情况;安全访问权限;Base地址;

CodingCos的博客 1633

Java中常用的工具类介绍

Java是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51亿个Java虚拟机,Java仍是企业和开发人员的首选开发平台。API:应用程序编程接口等价的可以看出现实生活中的操作说明说或者使用说明书。JavaAPIJava API指的是JDK中提供的各种功能的Java类。

m0_52514893的博客 324

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

常用DateUtils工具类

常见DateUtils工具类

勿在浮沙柱筑高台 634

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Java中常用的工具类

本文主要介绍了Java中常用的工具类,日期类,格式化类,随机数类等,是对Java中常用的工具类的类型总结~

weixin_68093610的博客 1920

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

java常用的工具类

附件中是常用的编码工具类

andy_angel成长历程 234

HuTool工具类常用方法汇总

HuTool工具类常用方法汇总

bsklhao的博客 1236

Java中Collections工具类中常用方法详解

java.util.Collections工具类为Java开发者提供了一系列静态方法,用于简化集合操作,包括排序、搜索、填充、包装及同步等。常用方法如sort()用于对列表进行自然或自定义排序,binarySearch()用于在有序列表中查找元素,reverse()和shuffle()分别用于反转和随机排列列表元素。此外,fill()用于填充列表,frequency()用于统计元素出现次数,disjoint()用于判断两个集合是否无交集。工具类还提供了unmodifiableXXX和synchronized

记录学习编程的日常 1120

一些常用的工具类

下面为大家介绍一些常用的apache工具类(轮子工厂)2333~ apache轮子工厂

zzzzzzyn的博客 269

java http工具类_11个常用java工具类(收藏一波)

前言这是统计github上的开源java项目,整理出最常用的11个开源工具类及其方法。大部分方法可以望文知意,请务必浏览一遍,知道有哪些好用的工具类,不必自己造轮子了。绝对的好东西,直接收藏吧!1.json转换工具1. package com.taotao.utils; 3. import java.util.List; 5. import com.fasterxml.jackson.core.J...

weixin_39959794的博客 934

28个java常用的工具类

28个java常用的工具类 

码农怀仔 241

java常用集合工具类

java常用集合工具类

weixin_46528266的博客 264

JS工具类常用方法

1、工具类函数 /** * 绘制圆角矩形 * @param {Object} ctx - canvas组件的绘图上下文 * @param {Number} x - 矩形的x坐标 * @param {Number} y - 矩形的y坐标 * @param {Number} w - 矩形的宽度 * @param {Number} h - 矩形的高度 * @param {Number} r - 矩形的圆角半径 * @param {String} [c = 'transparent'] - 矩形的填

Linceo的博客 484

JAVA常用的工具类

我们都知道,java中的很多集合,比如:ArrayList、LinkedList、HashMap、HashSet等,都是线程不安全的。中传递信息,比如:traceId,source等,便于在查询日志时能够串联一次完整的请求链路,快速定位问题。包下的一个类,它的全称是Mapped Diagnostic Context,我们可以认为它是一个线程安全的存放诊断日志的容器。**接口,MDC中获取当前请求的traceId,然后设置到header中。**方法,将这些线程不安全的集合,直接转换成线程安全集合。

java程序员 3771

16种常用的Java工具类

16种常用的Java工具类org.apache.commons.io.IOUtilsorg.apache.commons.io.FileUtilsorg.apache.commons.lang.StringUtilsorg.apache.http.util.EntityUtils org.apache.commons.io.IOUtils closeQuietly() toString() copy() toByteArray() write() toInputStream() re

weixin_43272286的博客 369
上一篇: 关于基类的那些事
下一篇: 让你快速上手的Glide4.x教程
丶Jy
博客等级 码龄11年 24粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值