AndroidStudio报错dl.google.com:443 访问失败解决方案

这个问题分两种情况:

1.网络问题

这是由于访问网络不通畅引起的,需要设置代理解决,这也是最常见的一种,无需赘述

2.gradle中文路径问题

这种情况虽然也报错访问失败,但其实不是网络问题,打开setting,找到gradle选项卡,查看里面的路径是否包含中文,全部改成英文,即可解决,如下图。

Android架构–测试选择

需要用到的测试工具库

1.espresso google官方提供的一个ui测试库
2.mockito 一个可以模拟各种类并进行注入/返回的库
3.junit 测试常用库

View的测试

使用espresso测试,espresso是一个谷歌官方推出的测试库,可以模拟进行各种ui操作,并判断组件状态。
例子

关于espresso的使用详见官方手册,这里只做引出,如果要做进一步测试,可以用mock来模拟一个ViewModel并inject来进行测试。

ViewModel

ViewModel部分与repositor[……]

Read more

Android架构体系–样例解析

接上一篇文章的概念分析的内容,这篇文章主要给出一个实际的mvvm例子来分析。

上一篇文章在这里Android架构体系–结构和组件选择

样例目的

通过mvvm模式和room(google提供的持久化库)来进行user类的显示/添加功能

结构

view:MainActivity(显示user),AddNewUserActivity(添加user)
viewmodel:UserViewModel(负责与model层通信,持有repository实例,并提供获取/插入user的操作)
model:user(实例类),userdao,appdatabase(初始化数据库实例类),userrep[……]

Read more

Android架构体系–结构和组件选择

Android架构的必要性

随着业务的发展,Android以前那种瀑布流式的开发模式的弊端越来越明显,例如
1.无法拆分逻辑和页面
都写在Activity中,无法拆分,非常混乱
2.无法测试等
由于界面和逻辑连在一起,无法写出良好的单元测试
3.过长的Activity代码
由于各种逻辑都在一起,经常会有三四百行的超长文件

Android官方解决方法 

这时候我们就需要对项目进行良好的架构来解决这些问题,Android官方提出MVVM架构模式并推出了诸多工具来实现,与最初不同的是,android官方推出了多个新的工具库来解决实现过程中的问题。

什么是MVVM

将整个项目分为三个层次
V[……]

Read more

几种神经网络的定义/结构/用途

人工神界网络

定义

分为多层的机器学习算法,将上一层的输出作为下一层的输入,直到最后一层输出

结构

用途

用于基本的分类或者预测学习,是一种基础的神经网络机器学习算法

卷积神经网络(CNN)

定义

同样为多层的神经网络,每次使用relu激励函数加上卷积层和池化层进行处理,最后通过全连接层输出

结构

作用

主要用在图像识别,每次卷积/池化都能过滤信息,最终得到判断结果

循环神经网络(RNN)

定义

把神经网络上次的输出作为输入之一再次进行运算的神经网络结构

结构

用途

主要用于有顺序的场景,比如语义和语法等具有连续性的场景学习,但是每次只接收上一次的[……]

Read more

协同过滤推荐算法相关步骤和细节

推荐算法分类

1.基于内容的推荐算法
2.协同过滤推荐算法

基于内容推荐

1.需要知道每个项目的特征,以及详细的特征值,比如一个电影的爱情元素占比,动作成分占比等
2.需要用户事先评价几部电影,得到用户的评分特征向量,比如,对动作电影的偏好程度等
3.把特征和用户偏好相乘,得到预估得分,得到推荐结果集

基于内容算法弊端

需要详细知道每个元素的具体特征和值,这是基本不可能实现的

协同过滤推荐算法

1.随机初始化用户偏好θ和项目特征x
2.直接使用代价函数同时求上述两个随机变量的最优解,梯度下降或者高级算法均可
3.预测过程与内容推荐相同

协同过滤的优点

1.不需要知道x的具体内[……]

Read more

机器学习算法性能的检测和调优方法【方法+代码】

常见的几种方法

1.收集更多样本
2.使用更小规模的方法
3.增加方法的规模
4.使用多项式
5.增加正则化参数λ

如何判断下一步该采用什么方法

引入概念,误差(error),可用下面公式求得

对于线性回归:

对于分类算法:

如何划分我们的样本

按照比例6:2:2划分为三个样本,训练集,验证集,测试集
训练集:找到方法参数theta
验证集:确定方法多项式的度数d
测试集:确定正则化参数λ

通过学习曲线来确定高方差/高偏差

[W6]机器学习应用建议

根据学习曲线来选择要使用哪种优化方法

同上

代码部分

1.error的计算代码

[crayon-5b2bfb4c[……]

Read more

神经网络算法的代码分析【对应步骤分析文章】

使用Octave软件进行编辑

1.代价函数以及其正则化

2.激励函数的导数

3.随机初始化参数

4.向后递推求梯度grad并对其正则化

5.进行梯度检查,检查得到的grad是否正确

6.获取优化参数

[crayon-5b2bfb4c78e8458[……]

Read more

神经网络算法的实现步骤和细节处理【公式部分】

算法步骤

1.确定算法层次模型,有几层,几个隐藏层,每层有多少节点

2.使用feedforward算法计算出,a2,a3,z2,z3

3.写出代价函数J,并对其进行正则化

4.写出激励函数sigmoid的导数表达式

5.随机初始化参数Theta

6.使用向后递推法获取每层的grad,具体步骤如下

6.1获取输出层的误差

6.2获取其他层的误差

6.3获取每层的delta


7.进行梯度检查,检查向后递推所得的值的正确性


8.使用fmincg等高级优化方法传入我们所得的代价函数J和grad,获得最优化参数Theta

9.使用向前推导法[……]

Read more

springboot配置mybatis结合xml配置mapper的过程

文章目的

最近接触到springboot,用来初始化项目非常方便,于是拿来初始化了一下mybatis,结果发现,网上大部分的文章都是用注解方法进行mapper配置。
大家都知道,mybatis的一个特点就是所有的sql都在xml里,方便管理,还可以使用动态sql。
于是我开始尝试使用xml配置mapper,过程中遇到了一点点问题,现记录。

使用工具 idea-IU-172.4343.14

第一步,新建项目,步骤如下

1.选择spring init

2.输入信息,第二个是项目名

3.搜索添加要用的依赖,这里注意右边,我选择了三个,web,mybatis,postgresql(也可以选[……]

Read more