- 博客(74)
- 收藏
- 关注
原创 keras自定义损失函数
把目标当成一个输入,构成多输入模型,把loss写成一个层,作为最后的输出,搭建模型的时候,就只需要将模型的output定义为loss,而compile的时候,直接将loss设置为y_pred(因为模型的输出就是loss,所以y_pred就是loss),无视y_true,训练的时候,y_true随便扔一个符合形状的数组进去就行了。
2023-11-14 15:05:30
185
原创 hive add columns 后查询不到新字段数据的问题
可以认为hadoop 的文件管理粒度对于分区表是到分区粒度的,是比表更细一个粒度的,所以alter table test1 add columns(department string comment ‘部门’) 这个命令不会改变历史分区的元数据信息,这种情况下即便insert overwrite命令更新了hdfs的数据,再使用select命令时仍然根据旧的元数据信息获取数据,所以获取不到新增字段;分区表add columns 查询不到新增字段数据的问题;有数据库、表、分区、字段、存储等多个元数据管理信息;
2023-10-10 16:05:04
637
原创 卸载TensorFlow旧版本,安装新版本
最近有时间,想把李沐的《动手学深度学习》代码码一遍,这本书用的是tengsorflow2的版本,所以我也对应装一下。
2022-10-17 15:44:26
3742
1
原创 吴恩达-深度学习微课-第四课
做完了一个序列模型项目,有时间回来补一下第4课的内容1.2 边缘检测示例 卷积运算:举例1个6x6的矩阵,经过一个3x3的过滤器矩阵进行卷积运算后,得到的是一个4x4的矩阵: 过程大概是:将过滤器覆盖到原矩阵上,第一步将对应位置元素相乘,第二步将得到的3x3的元素相加,作为结果的第一个元素;第三步按横向、纵向移动过滤器,如法炮制第二步的做法。 1.4 Padding 1、1.2节的卷积操作有两个缺点: (1)每卷积一次,图像都在变小,将n*n 经过f*f后缩.
2022-04-20 14:18:25
2940
原创 bilstm+crf 实现ner
一、基础知识1、lstm(1)B站 李宏毅机器学习课程(2)部分网友对应的课件文章:台大李宏毅机器学习(一)——RNN&LSTM_zhaochs的博客-CSDN博客_lstm李宏毅[机器学习入门] 李宏毅机器学习笔记-33 (Recurrent Neural Network part 2;循环神经网络 part 2)_holeung的博客-CSDN博客 (3)损失函数(4)优化方法(5)这种组合的优势:deep 网络学习x到y之间的关系,crf学习y之间的约束规则(6
2022-04-02 11:10:45
1467
原创 Anaconda+tensorflow+pycharm使用全套流程
1、重点事项-彼此软件版本对应关系提前百度查好这3个要安装程序之间的版本对应关系,选择自己需要的;本文安装的是:Anaconda 3-5.3.0(python 3.7)tensorflow 1.14pycharm 关系不大,只是个集成开发工具,原来电脑上有,就没有重新安装;2、Anaconda安装经历如下几个关键步骤:(1)卸载干净参考:anaconda3如何卸载干净_**七秒记忆**的博客-CSDN博客_卸载anaconda3干净(2)重新安装(3)原Anaco
2022-03-19 13:57:40
2563
原创 吴恩达-深度学习微课-第五课
部分内容记录1.2 数学符号 1、一个样本是一个句子,一个句子里含有若干个词语 2、根据一个词典,假设词典中有10,000个词,则可以将样本句子中的每个词根据在词典中的位置表示为one-hot编码向量,每个词都是10,000维 ...
2022-03-04 20:57:48
479
原创 吴恩达-深度学习微课-第三课
部分内容记录这一节都是些系统性、感知性层面的琐碎,不像第2课内容含量极多吴恩达-深度学习微课-第二课1.2 正交化 一个旋钮控制一个功能,实现独立控制;简单来说就是 One thing at a time 1.4 满足和优化指标 满足指标相当于必须达到的门槛、必要条件,在达到满足指标的基础上,尽可能提升优化指标 1.5 训练_开发_测试集划分 设立开发集和评估指标,真的就定义了模型所要瞄准的目标。所以开发集和训练集必须为同分布 1.9 可避免
2022-02-17 14:24:06
773
原创 吴恩达-深度学习微课-第二课
写这篇的时候,看到吴恩达新冠检测呈阳性的新闻,希望能积极治疗好起来。部分内容记录序号 内容 点 1.1 训练开发测试集 1、比例划分:传统机器学习数据规模不大例如万级,可以划分7:3或者6:2:2;而对于百万级数据,验证集和测试集数据就会减少,训练集数据可以占到98%到99.5%,也就是验证集/测试集分别只占1%或者0.25%; 2、深度学习需要大规模训练数据,就可能存在训练时是从网上爬取的精修猫的图片,而验证/测试时是手机拍摄的并不很清晰的图片,对于这种情况需要把
2022-02-08 17:08:37
1791
原创 吴恩达-深度学习微课(第一课)
部分内容记录:序号 内容 点 1.4 为什么深度学习会兴起? 1、data_scale 与performance的二维图形,对于ml 当数据规模达到一定量后,算法性能表现不再上升,比较平稳; 2、但是nn可以有更大的性能表现,随着训练一个更大规模的NN 3、“scale drives deep learning progress":这里的scale 包含两部分:数据规模、网络规模 4、在算法性能上升区域,是很难说哪个算法更好的,可能跟程序员对数据处理等相关;
2022-01-26 10:26:21
1079
原创 从0 spark本地开发环境搭建(idea)
1、jdk的安装、查看什么是jdk? - 知乎2、mavenMaven安装配置及在idea中配置_iqqcode-CSDN博客_maven安装与配置idea3、参考0070 IntelliJ IDEA+Scala+Hadoop +Spark的开发环境搭建_gendlee1991的专栏-CSDN博客_hadoop spark 开发...
2022-01-25 10:27:22
1552
原创 特征工程相关
1、特征数量相关1.1 特征筛选(减少)1.1.1单变量特征选择卡方检验:检测分类特征对分类因变量的影响;例如根据投硬币正反面的次数推断硬币是否均衡;参考文章:百度安全验证相关系数:Pearson 相关系数等;检测2个连续性变量之间的线性关系强弱;所以前提是有线性关系且分别服从正态分布,这个值大小才有意义;参考文章:常用的特征选择方法之 Pearson 相关系数 | HCigmoid单因素方差分析:检测分类型自变量对连续性因变量的影响参考连接:轻松学会单因素方差分析_哔哩哔.
2022-01-05 17:51:46
698
原创 spark中调用xgboost实现2分类时需对rawPrediction修改
1、修改代码/** * XGBoost模型预测结果修正,适配Spark内置评估方法 * * @param res XGBoost模型预测结果 * @return 修正后的预测结果 */ private def amendXGBPred(res: DataFrame): DataFrame = { val columns = res.columns if (columns.contains("rawPrediction")) { val
2021-12-29 15:40:53
1427
原创 spark代码一些特性-关于map与foreach区别/变量修改
1、关于map与foreach区别:map:遍历RDD,将函数f应用于每一个元素,返回新的RDD(transformation算子);foreach:遍历RDD,将函数f应用于每一个元素,无返回值(action算子);2、切记:spark中对变量的修改没有原地修改,这个和Python有很大区别(1)val amendDatas: Seq[DataFrame] = datas.indices.map(idx=>{ datas(idx).withColumn(columnName.co...
2021-12-21 17:51:30
1739
原创 pipeline、网格搜索、交叉验证几问
1、训练集、测试集怎么直白理解?训练集的信息是要完全暴露给数据处理、特征工程、模型训练的;测试集的信息是完全相反,不暴露的;就是要利用训练集得到数据处理器、特征工程、模型,完全走一遍过程,得到预测结果;2、训练集、验证集、测试集怎么直白理解?这里更准确的说法是:训练集-训练部分,训练集-验证部分,测试集;依旧,测试集是完全不暴露给数据处理、特征工程、模型训练的;需要注意的是,训练集-训练部分应该暴露,而训练集-验证部分不应该暴露,要做到这一点需要使交叉验证处在整个数据处理的最外层
2021-11-26 10:44:18
2187
原创 spark dataframe中列的metadata信息结构
*******************************************************************************************1、schema的结构形式df.schemaStructType(StructField(Elevation,IntegerType,true),StructField(Aspect,IntegerType,true),StructField(Slope,IntegerType,true))*********
2021-11-12 19:30:37
1806
原创 idea中 spark 工程项目单元测试
场景:大数据项目数据规模大,验证代码不可能拿实际项目数据跑,因此为了验证代码功能正确性,就可以利用造数或简单案例数据编写验证代码即单元测试。1、导入包import org.junit.Test2、@Test3、assert语句assert(condition) orassert(condition,StringMessage)4、示例代码class InvalidHandlerTest extends TestBase {/** * 测试场景:根据目标列过滤掉无效
2021-11-12 10:43:08
1893
原创 spark udf 与 dataframe连用
示例场景:将dataframe中非法字符替代为 null 类型,方便后续空值填充object Test { def main(args: Array[String]): Unit = { val spark = SparkSession.builder().master("local[*]").appName("function").getOrCreate() import spark.implicits._ val df = spark.createDataFra.
2021-11-11 10:06:25
1178
原创 idea 利用maven创建spark项目
1、file--new project 进入如下页面点击next,2、进入如下页面Name:填入项目名称Location:对应项目文件地址GroupId、ArtifactId,随意,会在pom文件中见到Version:默认,会在pom文件中见到点击 finish,3、进入如下页面,需要配置pom文件,添加依赖4、pom文件增加代码<inceptionYear>2008</inceptionYear> <pr.
2021-11-04 18:13:40
1706
原创 spark工程隐藏代码运行info信息,只显示error信息
1、创建resources文件夹file--project structure,进入如下页面在main文件夹下new folder,创建resources文件夹,并点击“Resources"2、resources文件夹下添加log4j.properties文件,文件内容如下log4j.rootCategory=ERROR, console log4j.appender.console=org.apache.log4j.ConsoleAppenderlog4j.appende...
2021-11-04 17:29:22
313
原创 spark项目3层架构模式
1、3层架构模式application--程序common--部分类抽象出来的一部分,特质例如controller--程序调度service --服务层,逻辑dao--持久层,数据util--工具类,皆可使用2、原wordCount示例代码object WordCount { def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMast.
2021-11-02 09:23:09
1763
原创 spark sc.textfile 路径
1、提交到集群执行时-hdfs路径val data = sc.textFile("/ETL/wordCount.txt")//这是个绝对路径2、local模式,Linux服务器本地地址可绝对路径,可相对路径3、idea开发环境val data = sc.textFile("E:\\13data\\covtype\\covtype.data")//这是个绝对路径val lines = sc.textFile("datas/11.txt")//相对路径相对的是工程的地址:
2021-10-20 10:01:58
2135
原创 spark部署模式
1、3种模式(还有其他)local,standalone,yarn2、yarn模式3、yarn 模式提交过程举例3.1 spark程序编写-WordCount.scalapackage org.example.practiceimport org.apache.spark.{SparkConf, SparkContext}object WordCount { def main(args: Array[String]): Unit = { ..
2021-10-19 10:29:04
158
原创 spark 广播变量
/** * 广播变量 * 实现join效果,但不使用join * join产生笛卡尔积,数据量几何增长,而且存在shuffle性能不高 */object Test { def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster("local[*]").setAppName("wordCount") val sc: SparkContext = new SparkConte.
2021-10-13 14:45:17
123
原创 spark自定义累加器
模仿spark自带的累加器,重写方法/** * !!!!! * 累加器实现WordCount * 避免reduceByKey的shuffle操作 */object Test{ def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster("local[*]").setAppName("wordCount") val sc: SparkContext = new Spark
2021-10-13 12:00:22
252
原创 spark累加器
累加器用来把Executor 端变量信息聚合到Driver 端。在Driver 程序中定义的变量,在Executor 端的每个Task 都会得到这个变量的一份新的副本,每个 task 更新这些副本的值后, 传回Driver 端进行 merge。object Test{ def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster("local[*]").setAppName("wordCo
2021-10-13 11:58:40
227
原创 spark自定义分区器
/** * !!!!! * 模仿自带分区器,自定义分区器 * 自定义,哪个分区放什么数据 */object Test{ def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster("local[*]").setAppName("wordCount") val sc: SparkContext = new SparkContext(sparkConf) val rdd.
2021-10-13 09:25:03
332
原创 spark血缘关系与持久化
/** * !!!!! * rdd不保存数据,保存计算逻辑,类似水管子 * 持久化是截留水池的关系 * 避免从血缘最开始的rdd开始计算 */object Test{ def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster("local[*]").setAppName("wordCount") val sc: SparkContext = new S...
2021-10-12 17:41:22
442
原创 spark闭包检测及序列化
/** * !!!!! * 闭包检测及序列化 * 闭包检测:通俗理解函数或方法会用到方法体外的变量,所以编译的时候不光会检测方法体内语法等问题,会包含用到的方法体外的变量都检测了 * 形式上“闭包”,“必包” * 序列化在spark程序中的常用场景,executor端有rdd要执行的算子和算子用到的部分数据,另外用到的类数据需要从driver端传到executor端 * 这个类就需要序列化,extends Serializable(或者变成样例类) * 当然,除了序列化还有另外一种解决思路,.
2021-10-11 13:14:53
249
原创 spark资源申请、与分区、task联系
粗浅理解,不完全准确:/** * 申请资源、计算节点数、虚拟cpu核数、并行度、并发度关系,分区、task数量: * 一个nodemanager 上可能有多个executor * spark-shell --num-executors 3 \ * --driver-memory 5g --executor-cores 2 \ //每个executor的虚拟核数 * --executor-memory 2g * 这种情况下最大并发度是是6=计算节点数*虚拟CPU核数 * 分区数=tas
2021-10-09 15:15:34
590
原创 scala集合方法与RDD算子区别
1、Scala集合方法与RDD算子区别RDD的方法和Scala集合对象的方法不一样集合对象的方法都是在同一个节点的内存中完成的RDD的方法可以将计算逻辑发送到Executor端(分布式节点)执行为了区分不同的处理效果,所以将RDD的方法称之为算子RDD的方法之外的操作都是在Driver端执行的,而方法内部的逻辑代码是在Excutor端执行的2、RDD转换算子与行动算子转换算子,是将RDD进行各种形式的变换,但不执行行动算子,像是启动按钮,将之前一系列转换算子一并执行..
2021-10-09 09:49:36
370
原创 学spark的一些基本概念逻辑
初学者接触到大数据、spark一些概念,就是这些字认识,但不知道啥意思,无法做到用一个比喻来理解;然后在大框架不了解的基础上,就过于钻到语法细节里面去了,都知道这样不太好,但是最开始确实做不到能有个深入浅出的见解来;而且这种浅出的见解,一般的书籍或是百度都还没有,只能是自己日积月累之后,突然有天有那么点意思了,虽然不能作为正解,但帮助自己理清关系没那么迷茫还是有用的。1、课程推荐b站上尚硅谷的spark课程,老师结合者画图和铺垫讲解,确实清晰,一遍不行,过段时间再来一遍。2、spark、...
2021-09-03 19:33:59
99
原创 sparkML 网格搜索+交叉验证
1、位置理解:下方虚线框中的位置;相当于网格搜索+交叉验证(CV)实现了更好的模型选择和参数调优,如果没有这一步,建模流程也是完整的,直接pipeline.fit 及后续步骤;而使用这一步,则是选择了一个优秀的参数组合的模型,再用这个模型fit及后续步骤2、参考文章:https://zhuanlan.zhihu.com/p/77883396...
2021-08-09 15:35:45
328
原创 idea输出log到文件
输出log到文件,方便查看完整的运行情况,请高手找问题也可以发给别人,更快速问题定位1、设置log输出的位置,注意不是到目录级别,而是到文件名级别点进去-edit configrations--logs
2021-08-05 10:46:03
1362
原创 spark 查看源码显示 sources not found
1、XGboost,spark并没有实现,需要用到第三方包;ctrl+鼠标左击查看源码时,提示如下错误:2、 处理方式:点Attach Source 然后选择 lib目录下 带source后缀的XGboost jar包,就解决了
2021-08-04 17:30:13
613
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人