【C#】交错数组 int[][] 与多维数组 int[,] 详解:从一个 CS0178 报错说起
int[][] dp = new int[m+1][n+1]();,然后被编译器一句 CS0178: Invalid rank specifier 当头浇下。这个报错的根源不是手滑,而是混淆了 C# 中两种"二维数组"的本质:交错数组 int[][] 与多维数组 int[,]。本文从这个报错出发,把两者的语法、内存布局、性能、适用场景一次讲透。int[][] dp = new int[m+1][n+1]();,然后被编译器一句 CS0178: Invalid rank specifier 当头浇下。这个报错的根源不是手滑,而是混淆了 C# 中两种"二维数组"的本质:交错数组 int[][] 与多维数组 int[,]。本文从这个报错出发,把两者的语法、内存布局、性能、适用场景一次讲透。List<T> 就能搞定一切集合操作,为什么官方框架、开源库、接口规范都偏爱 IList<T>?为什么 List<List<int>> 不能赋给 IList<IList<int>>?本文从 .NET 设计规范、面向接口思想、泛型不变性规则、实战场景四个维度,把两者的本质区别与避坑指南一次性讲透。接触深度学习已经快两年了,之前一直使用Google Colab和Kaggle Kernel提供的免费GPU(Tesla K80)训练模型(最近Google将Colab的GPU升级为Tesla T4,计算速度又提升了一个档次),不过由于内地网络的原因,Google和Kaggle连接十分不稳定,经常断线重连,一直是很令人头痛的问题,而且二者均有很多限制,例如Google Colab一个脚本运行的最长时间为12h,Kaggle的为6h,数据集上传也存在问题,需要使用一些Trick才能达成目的,模型的保存、下载等都会耗费很多精力,总之体验不是很好,不过免费的羊毛让大家撸,肯定会有一些限制,也是可以理解的。
对于租用云服务器,之前也尝试过,租用了一家小平台的GPU服务器,也存在一些操作上的困难,不适合程序调试,而且价格也不便宜。
很早之前就想要搭建一个自己的深度学习工作站,不过机器成本的昂贵,一直阻碍着我攒机计划的进行。工欲善其事,必先利其器!最近终于下定决心,置办一个深度学习工作站主机。本文将我在这段时间选择、购置硬件的心得体会,分享给大家。
评价指标是针对将相同的数据,输入不同的算法模型,或者输入不同参数的同一种算法模型,而给出这个算法或者参数好坏的定量指标。
在模型评估过程中,往往需要使用多种不同的指标进行评估,在诸多的评价指标中,大部分指标只能片面的反应模型的一部分性能,如果不能合理的运用评估指标,不仅不能发现模型本身的问题,而且会得出错误的结论。
最近恰好在做文本分类的工作,所以把机器学习分类任务的评价指标又过了一遍。本文将详细介绍机器学习分类任务的常用评价指标:准确率(Accuracy)、精确率(Precision)、召回率(Recall)、P-R曲线(Precision-Recall Curve)、F1 Score、混淆矩阵(Confuse Matrix)、ROC、AUC。
因为工作需求,最近又重新温习了一下Git操作,遂总结了一篇Git常用操作指南,方便日后学习查阅,本博客精简提炼了在开发过程中Git经常用到的核心命令,主要参考了《廖雪峰老师的Git教程》,希望对大家学习使用Git能带来帮助。