01 2020 档案

摘要:模型的保存与加载一般有三种模式:save/load weights(最干净、最轻量级的方式,只保存网络参数,不保存网络状态),save/load entire model(最简单粗暴的方式,把网络所有的状态都保存起来),saved_model(更通用的方式,以固定模型格式保存,该格式是各种语言通用的 阅读全文
posted @ 2020-01-31 17:37 赵代码 阅读(1936) 评论(1) 推荐(1)
摘要:使用到的API有:keras.Sequential、Layers/Model 1.keras.Sequential 以前的代码已经很多次用到了这个接口,这里直接给出代码: model = Sequential([ layers.Dense(256,activation=tf.nn.relu), # 阅读全文
posted @ 2020-01-31 17:02 赵代码 阅读(468) 评论(1) 推荐(1)
摘要:在tf.keras中,metrics其实就是起到了一个测量表的作用,即测量损失或者模型精度的变化。metrics的使用分为以下四步: step1:Build a meter acc_meter = metrics.Accuracy() loss_meter = metrics.Mean() step 阅读全文
posted @ 2020-01-30 21:32 赵代码 阅读(2411) 评论(1) 推荐(1)
摘要:Fragment是个特别的存在,有点像报纸上的专栏,看起来只占据页面的一小块,但是这一小块有自己的生命周期,可以自行其是,仿佛独立王国,并且这一小块的特性无论在哪个页面,给一个位置就行,添加以后不影响宿主页面的其他区域,去除后也不影响宿主页面的其他区域。每个fragment都有自己的布局文件,依据其 阅读全文
posted @ 2020-01-29 18:44 赵代码 阅读(314) 评论(1) 推荐(1)
摘要:单层的感知机结构可写成以下公式: y=XW+b(y = Σxi*wi+b) 这里单层感知机的激活函数改成使用现代化的sigmoid激活函数 # 定义网络结构 x=tf.random.normal([1,3]) w=tf.ones([3,1]) b=tf.ones([1]) y = tf.consta 阅读全文
posted @ 2020-01-28 22:53 赵代码 阅读(307) 评论(1) 推荐(1)
摘要:1.MSE(均方误差) MSE是指真实值与预测值(估计值)差平方的期望,计算公式如下: MSE = 1/m (Σ(ym-y'm)2),所得结果越大,表明预测效果越差,即y和y'相差越大 y = tf.constant([1,2,3,0,2]) y = tf.one_hot(y,depth=4) y 阅读全文
posted @ 2020-01-27 15:04 赵代码 阅读(3061) 评论(1) 推荐(1)
摘要:对于神经网络的全连接层,前面已经使用矩阵的运算方式实现过,本篇将引入tensorflow中层的概念, 正式使用deep learning相关的API搭建一个全连接神经网络。下面是全连接神经网络的结构图 其中,x1,x2,x3为输入,a1,a2,a3为输出,运算关系如下: x1,x2,x3所在的层叫神 阅读全文
posted @ 2020-01-27 13:23 赵代码 阅读(9065) 评论(1) 推荐(1)
摘要:本篇涉及的内容主要有小型常用的经典数据集的加载步骤,tensorflow提供了如下接口:keras.datasets、tf.data.Dataset.from_tensor_slices(shuffle、map、batch、repeat),涉及的数据集如下:boston housing、mnist/ 阅读全文
posted @ 2020-01-26 19:45 赵代码 阅读(1878) 评论(1) 推荐(1)
摘要:本篇内容有:如何根据坐标有目的的选择(where)、如何根据坐标有目的的更新(scatter_nd)、如何生成一个坐标系() 1.where where针对的tensor是一个bool类型的tensor,即元素都由True或False组成,where(tensor)返回元素为True的位置 # 随机 阅读全文
posted @ 2020-01-25 19:09 赵代码 阅读(611) 评论(1) 推荐(1)
摘要:本篇内容有clip_by_value、clip_by_norm、gradient clipping 1.tf.clip_by_value a = tf.range(10) print(a) # if x<a res=a,else x=x print(tf.maximum(a,2)) # if x>a 阅读全文
posted @ 2020-01-24 23:00 赵代码 阅读(399) 评论(1) 推荐(1)
摘要:本篇记录一下TensorFlow中张量的排序方法 tf.sort和tf.argsort # 声明tensor a是由1到5打乱顺序组成的 a = tf.random.shuffle(tf.range(5)) # 打印排序后的tensor print(tf.sort(a,direction='DESC 阅读全文
posted @ 2020-01-23 22:27 赵代码 阅读(3732) 评论(1) 推荐(1)
摘要:本篇内容包括,tf.norm(张量的范数)、tf.reduce_min/max(最大最小值)、tf.argmax/argmin(最大最小值的位置)、tf.equal(张量的比较)、tf.unique(张量的独特值) 1.tf.norm · 二范数 ||x||2 = (Σxk2)1/2 · 一范数 | 阅读全文
posted @ 2020-01-22 21:42 赵代码 阅读(585) 评论(1) 推荐(1)
摘要:先来看一下有哪些接口用来进行张量的合并与分割: tf.concat用来进行张量的拼接,tf.stack用来进行张量的堆叠,tf.split用来进行张量的分割,tf.unstack是tf.split的一种,也用来进行张量分割 1.tf.concat 参数axis代表将要合并的维度 # 假设a代表四个班 阅读全文
posted @ 2020-01-22 20:29 赵代码 阅读(3157) 评论(1) 推荐(1)
摘要:前面在mnist中使用了三个非线性层来增加模型复杂度,并通过最小化损失函数来更新参数,下面实用最底层的方式即张量进行前向传播(暂不采用层的概念)。 主要注意点如下: · 进行梯度运算时,tensorflow只对tf.Variable类型的变量进行记录,而不对tf.Tensor或者其他类型的变量记录 阅读全文
posted @ 2020-01-22 18:36 赵代码 阅读(906) 评论(1) 推荐(1)
摘要:说到列表视图,不难联想到前面提到过的数组适配器,但是数组适配器只能搭建文本选择项,扩展能力并不强,Android提供了一种适应性更强的基本适配器BaseAdapter,该适配器允许开发者在别的代码中进行逻辑处理,下面以Spinner为载体,演示如何使用BaseAdapter,具体分为以下三步: (1 阅读全文
posted @ 2020-01-21 16:39 赵代码 阅读(579) 评论(1) 推荐(1)
摘要:1.DatePickerDialog 在一些万年历、日程表等APP上我们经常可以看到日期选择控件,由于很少有用户会老老实实的手工输入日期,所以该控件的作用就是为了控制用户的输入格式,在Android中有一个日期选择控件叫DatePicker,但是该空间并非弹窗模式,而是在页面上占据一块区域,这种方式 阅读全文
posted @ 2020-01-21 15:15 赵代码 阅读(13361) 评论(1) 推荐(1)
摘要:broadcasting是tensorflow中tensor维度扩张的最常用的手段,指对某一个维度上重复N多次,虽然它呈现数据已被扩张,但不会复制数据。 可以这样理解,对 [b,784]@[784,10]+[10]这样一个操作([10]可以理解为偏置项),那么原式可以化为[b,10]+[10],但是 阅读全文
posted @ 2020-01-20 20:17 赵代码 阅读(1063) 评论(1) 推荐(1)
摘要:Application是Android的一大组件,在APP运行过程中有且仅有一个Application对象,它类似于javaweb中的session,贯穿整个生命周期。 Application中适合保存的全局变量主要有一下三类: (1)会频繁读取的信息,如用户名、手机号等 (2)从网络上获取的临时数 阅读全文
posted @ 2020-01-19 10:18 赵代码 阅读(885) 评论(1) 推荐(1)
摘要:赶上智能手机刚问世时有幸用过的小伙伴都知道,那时候的Android系统是把我们自己买的SD卡作为外部存储的,但是不知道从哪天开始,SD卡就被固化到智能手机的内部了,但是我们仍然把它称为外部存储。我想Android这样做的原因大概是因为市面上SD卡质量有好有坏,可能会影响APP运行吧(因为笔者就有过A 阅读全文
posted @ 2020-01-18 23:22 赵代码 阅读(1190) 评论(0) 推荐(1)
摘要:SQLite是一个小巧的嵌入式数据库,使用方便、开发简单,手机上最早由IOS运用,后来Android也采用了SQLite. SQLite的多数SQL语法与Oracle 一样,下面只列出不同的地方: (1)建表时为避免重复操作,应加上IF NOT EXISTS关键词,例如CREATE TABLE IF 阅读全文
posted @ 2020-01-18 22:51 赵代码 阅读(492) 评论(1) 推荐(1)
摘要:SharedPreferences是Android的一个轻量级存储工具,采用的存储结构是Key-Value的键值对方式,类似于Java的Properties类,二者都是把Key-Value的键值对保存在配置文件中。不同的是Properties的文件内容是Key=Value这样的形式,而SharedP 阅读全文
posted @ 2020-01-18 22:17 赵代码 阅读(963) 评论(1) 推荐(1)
摘要:维度变换是tensorflow中的重要模块之一,前面mnist实战模块我们使用了图片数据的压平操作,它就是维度变换的应用之一。 在详解维度变换的方法之前,这里先介绍一下View(视图)的概念。所谓View,简单的可以理解成我们对一个tensor不同维度关系的认识。举个例子,一个[ b,28,28,1 阅读全文
posted @ 2020-01-18 08:17 赵代码 阅读(3620) 评论(1) 推荐(1)
摘要:玩过深度学习图像处理的都知道,对于一张分辨率超大的图片,我们往往不会采取直接压平读入的方式喂入神经网络,而是将它切成一小块一小块的去读,这样的好处就是可以加快读取速度并且减少内存的占用。就拿医学图像处理来说吧,医学CT图像一般都是比较大的,一张图片就可能达到500MB+,有的甚至超过1GB,下面是切 阅读全文
posted @ 2020-01-17 22:07 赵代码 阅读(4931) 评论(1) 推荐(1)
摘要:在tensorflow2.0版本之前,1.x版本的tensorflow的基本数据类型有计算图(Computation Graph)和张量(Tensor)两种,但tensorflow2.0之后的版本取消了Graph和Session的概念。今天简单记录一下Tensor的相关内容。 从Tensorflow 阅读全文
posted @ 2020-01-17 20:07 赵代码 阅读(3584) 评论(1) 推荐(1)
摘要:APP源码已上传到我的GitHub:https://github.com/zdm-code/Android-learning/tree/master/android_learning/mortgage 如今楼市可真是疯狂,房价蹭蹭的坐火箭飞涨,说到买房,自然少不了房贷,根据不同的贷款方式与还款方式, 阅读全文
posted @ 2020-01-17 17:35 赵代码 阅读(3371) 评论(1) 推荐(1)
摘要:Activity是Android的四大组件之一,本篇将通过Activity的生命周期,Intent的组成部分以及如何使用Intent进行页面之间的消息传递来介绍它的基本用法。 1.activity的生命周期 下面是有关activity生命周期的方法说明: · onCreat : 创建页面,把页面上的 阅读全文
posted @ 2020-01-16 11:16 赵代码 阅读(809) 评论(1) 推荐(1)
摘要:今天通过论坛偶然知道,在mnist之后,还出现了一个旨在代替经典mnist数据集的Fashion MNIST,同mnist一样,它也是被用作深度学习程序的“hello world”,而且也是由70k张28*28的图片组成的,它们也被分为10类,有60k被用作训练,10k被用作测试。唯一的区别就是,f 阅读全文
posted @ 2020-01-15 19:29 赵代码 阅读(2432) 评论(1) 推荐(1)
摘要:本次APP的源码已上传到我的GitHub:https://github.com/zdm-code/Android-learning/tree/master/android_learning/app 经过长达两天的Android的学习,觉得已经可以做一些简单的小APP练练手。本次就做了一个简易计算器, 阅读全文
posted @ 2020-01-14 19:35 赵代码 阅读(1627) 评论(1) 推荐(1)
摘要:上一篇我们提到了回归问题中的梯度下降算法,而且我们知道线性模型只能解决简单的线性回归问题,对于高维图片,线性模型不能完成这样复杂的分类任务。那么是不是线性模型在离散值预测或图像分类问题中就没有用武之地了呢? 本篇我们就套用regression中的部分机制来处理classification中的问题。 阅读全文
posted @ 2020-01-14 10:05 赵代码 阅读(418) 评论(1) 推荐(1)
摘要:本篇介绍一下Android中的几种常用的布局,主要介绍内容有: ·View视图 ·LinearLayout ·RelativeLayout 在介绍布局之前,我们首先要了解视图View的基本属性,因为所有的控件和布局都是直接或间接由View派生而来的,故而View类的基本属性和方法是各控件和布局通用的 阅读全文
posted @ 2020-01-13 22:59 赵代码 阅读(793) 评论(0) 推荐(2)
摘要:1.像素 老子曾说“天下难事必作于易,天下大事必作于细”,Android开发也是一样,再复杂的App也无非就是数百万个像素点的排列组合。像素虽然看似简单,但是里面大有学问。如果在开发时对像素单位不以为然仅仅一根筋的填数字,最后在模拟器上取得很好效果的界面在真机上也可能东倒西歪,这就是没打好基础的缘故 阅读全文
posted @ 2020-01-13 19:53 赵代码 阅读(767) 评论(1) 推荐(1)
摘要:由于tensorflow2.0版本的更新,很多以前版本上提到的图等概念都不再适用。为了跟上时代的步伐,顺便扎实一下深度学习的基础,从今天开始记录一下学习过程。 要想开始深度学习,首先必不可少的就是数学基础了,虽然tensorflow提供了一系列不需要太深的数学基础就可以使用的现成的函数,但是总吃表面 阅读全文
posted @ 2020-01-13 11:32 赵代码 阅读(924) 评论(2) 推荐(2)
摘要:在经过千辛万苦各种填坑终于安装好了Android Studio之后,在其自带的模拟器上成功运行了第一个APP(hello world),通过这个APP首先研究了一下APP基本的工程结构,从而使后面的开发更加得心应手。 先上HelloWorld工程的目录结构图 从结构图我们可以看到,该工程下面有两个目 阅读全文
posted @ 2020-01-12 19:26 赵代码 阅读(1341) 评论(1) 推荐(3)