[阿里DIN] 模型保存,加载和使用 0x00 摘要 Deep Interest Network(DIN)是阿里妈妈精准定向检索及基础算法团队在2017年6月提出的。...本系列文章会解读论文以及源码,顺便梳理一些深度学习相关概念和TensorFlow的实现。 本文是系列第 12 篇 :介绍DIN模型的保存,加载和使用。...因为TensorFlow会将计算图的结构和图上参数取值分开保存,所以保存后在相关文件夹中会出现3个文件。 下面就是DIN,DIEN相关生成的文件,可以通过名称来判别。...这种模型和权重数据分开保存的情况,使得发布产品时不是那么方便,所以便有了freeze_graph.py脚本文件用来将这两文件整合合并成一个文件。 freeze_graph.py是怎么做的呢?...Op节点从图中剥离掉; 使用tf.train.writegraph保存图,这个图会提供给freeze_graph使用; 再使用freeze_graph重新保存到指定的文件里; 0x02 DIN代码 因为
方法一(推荐):第一种方法也是官方推荐的方法,只保存和恢复模型中的参数。...(torch.load(PATH))使用这种方法,我们需要自己导入模型的结构信息。...方法二:使用这种方法,将会保存模型的参数和结构信息。...保存torch.save(the_model, PATH)恢复the_model = torch.load(PATH)一个相对完整的例子savingtorch.save({'epoch': epoch...ReLU ()(conv2): Conv2d(20, 64, kernel_size=(5, 5), stride=(1, 1))(relu2): ReLU ())如果我们想获取conv1的weight和bias
OpenCV中有很方便的加载保存图片的函数,这里总结一下,通过本小节你可以学到下面三个函数: cv.imread(),加载图片; cv.imshow(),显示图片; cv.imwriter(),保存图片...01 cv.imread() 使用cv.imread()函数加载图片非常简单,只需要指定对应的图片路径即可,此时需要注意的是cv.imread()函数返回的是ndarray数组类型,即通过ndarray...但是当你执行这段代码的时候,屏幕会一闪而过,此时我们需要使用waitKey函数,注意此时waitKey函数在图像和视频中应用含义是不一样的,下面先以图像角度来介绍waitKey函数,后面介绍视频读写的时候在介绍在视频中应用...03 cv.imwrite() 使用cv.imwrite()函数保存处理后的图片,和加载图片一样简单。...我们直接使用即可,为了效果明显,这里使用cv.cvtColor()函数,你可以简单理解成对图像做颜色上的变换,第一参数为ndarray数组图片,第二个参数就是指定图片做何种变换,里面还有其他的一些属性可以尝试
OpenCV不仅能够很方便的加载和保存图片,而且对于视频的加载与保存也可以很简单的通过OpenCV中的函数轻松实现。本篇主要介绍如何加载保存视频。...01 加载并显示视频 前面介绍了加载图像,我们可以直接通过imread()函数加载图像,返回一个使用ndarray数组表示的像素矩阵。...接下来看看如何使用OpenCV打开视频文件并显示,其实和上面的类似。首先准备一个视频文件,此时我的视频文件叫做"love.avi",我将文件放在当前目录下。 ? 执行效果: ?...这里需要说明cv.waitKey函数,在图像的加载与保存中,我们介绍过此函数,但是通过前面的效果,也可以看出waitKey函数在视频中和在图像中是不一样的,当然参数值也是三种,正整数,负整数以及0。...02 保存视频 保存视频有一些麻烦,需要指定保存视频的编码、每一帧时间间隔以及每一帧的大小,保存视频编码后面会介绍,目前按照代码中的执行即可。 ? ? 看见"my_love.avi"文件。
把从网络获取的图片数据保存在SD卡上, 先把权限都加上 网络权限 android.permission.INTERNET SD卡读写权限 android.permission.MOUNT_UNMOUNT_FILESYSTEMS...android.permission.WRITE_EXTERNAL_STORAGE 总体布局 写界面,使用ListView,创建条目的布局文件,水平摆放的ImageView TextView 在activity...,image,有参构造函数 新建一个service包,新建一个ContactService业务类,新建一个静态方法getContacts(),获取联系人的,getImages()获取图片 开启新线程,使用...ContactService.getContacts()里面实现获取网络数据,返回List对象,使用Handler传递数据给主线程 创建缓存图片的SD卡目录 获取File对象,通过new File(),...anr,所以要异步加载图片 异步加载并保存图片 开启线程执行加载图片的代码 在ContactService业务类里实现getImage()方法,通过get方式读取图片,得到Uri对象,参数:图片路径,
在inference时,可以通过修改这个文件,指定使用哪个model 2 保存Tensorflow模型 tensorflow 提供了tf.train.Saver类来保存模型,值得注意的是,在tensorflow.../checkpoint_dir')) 此时,W1和W2加载进了图,并且可以被访问: import tensorflow as tf with tf.Session() as sess:...Above statement will print the saved value 执行后,打印如下: [ 0.51480412 -0.56989086] 4 使用恢复的模型 前面我们理解了如何保存和恢复模型...import tensorflow as tf sess=tf.Session() #先加载图和参数变量 saver = tf.train.import_meta_graph('....tensorflow as tf sess = tf.Session() # 先加载图和变量 saver = tf.train.import_meta_graph('my_test_model-1000
程序的终归目的还是操作数据来达到实现一些特定功能,在Android中,我们可以通过操作文件或者使用SharedPreferences还有数据库来保存一些数据。...SharedPreferences现在只有一种MODE_PRIVATE(和上面介绍的一样)操作模式。...SharedPreferences对象: 1、Context类的getSharedPreferences方法,此方法接收两个参数:SharedPreferences储存的文件名和操作模式。...对象 (2) 使用SharedPreferences.Editor 对象的特性方法储存数据(putString()...) (3) 调用SharedPreferences.Editor 对象的apply...,loadUserInfo() 方法用于恢复用户名和密码等操作。
前言 尝试过迁移学习的同学们都知道,Tensorflow的模型保存加载有不同格式,使用方法也不一样,新手会觉得乱七八糟,所以本文做一个梳理。从模型的保存到加载,再到使用,力求理清这个流程。 1....这样就可以直接加载图结构和“参数”了。 1.4 saved_model模式 虽然saved_model也支持模型加载,并进行迁移学习。...加载 下面说如何加载,checkpoint和pb两种模式的加载方法也不一样。...下面分别说 2.1 checkpoint加载(略烦) checkpoint模式的网络结构和变量是分来保存的,加载的时候也需要分别加载。而网络结构部分你有两种选择:1....Fine-tune 最后不管保存还是加载模型,多数情况都是为了能够进行迁移学习。其实大部分无非就是将模型加载进来之后,使用某一个节点的值,作为我们后续模型的输入呗。
Retrofit的cookie的保存和添加都可以用Interceptor来实现 下面是接收请求中返回并保存cookie的代码示例: public class ReceivedCookiesInterceptor...cookieBuffer = new StringBuffer(); //最近在学习RxJava,这里用了RxJava的相关API大家可以忽略,用自己逻辑实现即可.大家可以用别的方法保存...sharedPreferences = context.getSharedPreferences("cookie", Context.MODE_PRIVATE); SharedPreferences.Editor...} }); return chain.proceed(builder.build()); } } 在Retrofit做如下设置即可在每次请求中保存和添加...cookie: 本人使用的Retrofit2.0可能Retrofit1.9中代码略有不同,但这个思路应该也可以用在1.9版本中,希望对大家有所帮助 public static OkHttpClient
使用场景: 正在dev分支开发新功能,做到一半时有人过来反馈一个bug,让马上解决,但是新功能做到了一半你又不想提交,这时就可以使用git stash命令先把当前进度保存起来,然后切换到另一个分支去修改...bug,修改完提交后,再切回dev分支,使用git stash pop来恢复之前的进度继续开发新功能。...git stash 保存当前工作进度,会把暂存区和工作区的改动保存起来。执行完这个命令后,在运行git status命令,就会发现当前是一个干净的工作区,没有任何改动。...git stash save ‘…’ 保存时添加一些注释,方便找到。 git stash list 显示保存进度的列表。...git默认会把工作区和暂存区的改动都恢复到工作区。 git stash pop –index 恢复最新的进度到工作区和暂存区。
sitk.GetArrayFromImage(image3D) # SimpleITK读取的图像数据的坐标顺序为zyx,即从多少张切片到单张切片的宽和高; # 而据SimpleITK Image获取的origin和spacing...大家还是直接看代码吧~ /******************************************************* 控制台运行程序 输入: 程序名称 读取图像文件名 保存图像文件名...输出: 保存另一种类型的图像 功能: 图像在jpeg和bmp两种格式之间互换 *******************************************************...endl; std::cerr << err << std::endl; return EXIT_FAILURE; } system("pause"); return 0; } 以上这篇使用...SimpleITK读取和保存NIfTI/DICOM文件实例就是小编分享给大家的全部内容了,希望能给大家一个参考。
需求 在一些项目业务中,经常会使用到画板,让用户自己去写/画一些东西做标示,比如说在线签电子合约、签名等,在上两篇博客中,已经解决了PC端和移动端的Canvas签名,那么在签名完成之后,我们如何将画布上东西保存...【本篇包含PC和移动端的签名,以及清空和保存】 分析 在前两篇中,分辨实现了 PC端canvas签名以及 移动端canvas签名,要是形成一个简单且完整的功能点,我们起码还缺少清空和保存两个环节...另外一个方法,也可以使用 clearRect(),这个方法是清空画布中一个矩形区域内的内容。由于我们并为保存所有点集合,所以采用此方法清空。...如果超出取值范围,将会使用默认值 0.92。其他参数会被忽略。 返回值 包含 data URI 的DOMString。...目前更新的有 PC端签名方法 移动端签名方法 PC和移动端签名方法以及清空和保存
如果你是使用Android Studio的话,那么Custom View操作很简单,只需要new -> UI Component -> Custom View就好了,IDE会自动帮你生成一些有用的代码,...(1)新建文件res/values/attrs_font_textview.xml,其中定义一下我们的TextView的属性fontType,用来指明使用的字体。...); array.recycle(); } } 仔细看上面的代码你会发现一个FontManager类,这个类是个单例类,专门用来管理字体的,因为加载字体是比较费时的操作。...layout_below="@+id/bling" android:text="Planet Font" android:textSize="40dp" android:textColor...layout_below="@+id/planet" android:text="Shadow Font" android:textSize="40dp" android:textColor
窗口执行以下代码: git config --global user.email 'email' git config --global user.name 'username' 在git pull时,输入用户名和密码就可以保存用户名密码了
前阵子研究ExtJS,对于如何在Sencha Architect软件中使用全局变量伤透了脑筋。...现在我一共发现了两种: 第一种:使用“window.全局变量”形式 window 对象总是存在的,你可理解其为一个浏览器窗口对象。它包含了其它所有的对象如document 和所有的全局变量。...假设有全局变量seq,那么赋值和取值操作如下: window.seq=13; //赋值 var temp=window.seq; //取值 第二种:使用document对象中的cookie属性 在客户端...也就是说,要引用当前窗口根本不需要特殊的语法,可以把那个窗口的属性作为全局变量来使用。...例如,可以只写 document,而不必写 window.document document里面有一个对象属性cookie,可以用来保存用户储存在本地终端上的数据。
android:attr/textAppearanceLarge" android:textColor="#FF0000" /> 注意,ProgressBar...handleMessage(Message msg) { if (msg.what == 0x11) { tv.setText("正在加载...pBar.setProgress(progress); } else if (msg.what == 0x12) { tv.setText("加载完毕...就用到了sharedPreferences和onActivityResult和Activity的生命周期。...至于onActivityResult和Activity的生命周期被调用的先后顺序,自己可以Log查看。
我们在注册界面点击注册按钮后,需要获取用户名,用户密码和再次确认密码,当两次密码相同时,将用户名和密码(经过 MD5 加密)保存到 SharedPreferences 中,同时当注册成功之后需要将用户名传递到登录界面中...Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show(); //把账号、密码和账号标识保存到...has_userName; } /** * 保存账号和密码到SharedPreferences中 */ private void saveRegisterInfo...);//获取编辑器 //以用户名为key,密码为value保存在SharedPreferences中 editor.putString(userName, md5Psw)...("loginInfo", MODE_PRIVATE); return sp.getString(userName , ""); } /** *保存登录状态和登录用户名到
This is a quick discussion of how to set up a local development environment for ...
,MD5加密算法 技能点 掌握注册界面的设计和逻辑构思,掌握标题栏的创建以及常用控件的使用 通过SharedPreferences实现数据的存取功能,通过setResult(RESULT_OK,data...setResult(RESULT_OK,data)使用 Intent使用 技能点 掌握登录界面的设计和逻辑构思 通过SharedPreferences实现数据的存取功能 通过setResult(...使用本地数据存储用户信息,注册成功后将用户名和密码保存在SharedPrefereces中,以便于后续用户登录。为保证账户的安全,在保存密码时采用MD5加密算法,这种算法不可逆,具有一定的安全性。...file 保存注册信息到SharedPreferences中 在REgisterActivity中创建一个saveRegisterInfo()方法,讲注册成功的用户名和密码(经过MD5加密)保存到SharedPreferences...SharedPreferences中 由于在后续创建主界面时,需要根据登录状态来设置界面的图标和用户名,因此需要创建saveLogiinStatus()方法,在登录成功后吧登录状态和用户名保存到SharedPrefereces
领取专属 10元无门槛券
手把手带您无忧上云