精华内容
下载资源
问答
  • ModelMapper

    千次阅读 2019-03-21 17:36:25
    在项目中很多时候需要把Model和DTO两个模型类来回转换,保证Model对外是隐私的,同时类似密码之类的属性也能很好地避免暴露在外了. 那么ModelMapper就是为了方便转换而实现的一个类库,下面根据使用场景不断增加案例. ...

    在项目中很多时候需要把Model和DTO两个模型类来回转换,保证Model对外是隐私的,同时类似密码之类的属性也能很好地避免暴露在外了. 那么ModelMapper就是为了方便转换而实现的一个类库,下面根据使用场景不断增加案例.


    1.ModelMapper入口类

    ModelMapper这个工具的入口类就是ModelMapper,因此转换就需要从这个类入口.简单看下API

    1. addConverter() :顾名思义,添加转换器
    2. addMappings() :添加映射器
    3. createTypeMap() :创建A-B的转换器关系
    4. getConfiguration() :获取配置
    5. map() ;映射处理

    2.简单Model-DTO转换

    /**
    
    * 简单类-类转换
    
    */
    
    @Test
    
    public void testModelToDTO() {
    
    User user = new User();
    
    user.setId(1L);
    
    user.setNickname("张三");
    
    user.setEmail("101@qq.com");
    
    user.setHonor("测试荣誉");
    
    ModelMapper modelMapper = new ModelMapper();
    
    UserDTO userDTO = modelMapper.map(user, UserDTO.class);
    
    System.out.println(userDTO);
    
    }

    这里转换替换是根据字段名匹配也就是当User和UserDTO中的字段名称一样就会自动转换.

    3.自定义转换

    自定义有很多转换,比如Provider,Converter,Condition,PropertyMap等,下面是个综合的例子.

    /**
    
    * 简单类到类自定义字段
    
    */
    
    @Test
    
    public void testModelToDTOByDe(){
    
    User user = new User();
    
    user.setId(1L);
    
    user.setNickname("张三");
    
    user.setEmail("101@qq.com");
    
    user.setHonor("测试荣誉");
    
    ModelMapper modelMapper = new ModelMapper();
    
    
    //转换内容提供者
    
    Provider<String> personProvider = new AbstractProvider<String>() {
    
    public String get() {
    
    return "自定义提供者";
    
    }
    
    };
    
    //创建自定义转换规则
    
    Converter<String, String> toUppercase = new AbstractConverter<String, String>() {
    
    protected String convert(String source) {
    
    System.out.println(source);
    
    return source == null ? null : source.toUpperCase();
    
    }
    
    };
    
    //创建自定义条件转换
    
    Condition<Long,?> gt2 = context -> {
    
    System.out.println(context.getSource());
    
    return context.getSource() > 2;
    
    };
    
    //创建自定义映射规则
    
    PropertyMap<User,UserDTO> propertyMap = new PropertyMap<User, UserDTO>() {
    
    @Override
    
    protected void configure() {
    
    using(toUppercase).map(source.getNickname(),destination.getHonor());//使用自定义转换规则
    
    with(personProvider).map(source.getHonor(),destination.getNickname());//使用自定义属性提供覆盖
    
    map(source.getAvatar()).setAvatar(null);//主动替换属性
    
    skip(destination.getEmail());
    
    when(gt2).map().setId(1L);//过滤属性
    
    }
    
    };
    
    //添加映射器
    
    modelMapper.addMappings(propertyMap);
    
    modelMapper.validate();
    
    //转换
    
    UserDTO userDTO = modelMapper.map(user,UserDTO.class);
    
    System.out.println(userDTO);
    
    }

    对应的输出是:

    UserDTO{id='null', email='null', avatar='null', nickname='自定义提供者', honor='张三'}

    分析下:
    Provider,Converter,Condition三个都算是转换前奏,所有的转换规则都是在PropertyMap里面配置.所以分析这个里面的配置即可.

    1.using(toUppercase).map(source.getNickname(),destination.getHonor());//使用自定义转换规则
    首先toUppercase是一个Converter,也就是sources的nickname会经过这个转换器,然后才设置到destination的honor中.
    2.with(personProvider).map(source.getHonor(),destination.getNickname());//使用自定义属性提供覆盖
    personProvider类似一个Bean工厂,当使用这个的时候,对于sources调用getHonor()的时候实际上是调用personProvider的get方法.所以结果nickname='自定义提供者'
    3.map(source.getAvatar()).setAvatar(null);//主动替换属性
    可以主动重设某些属性
    4.skip(destination.getEmail());
    过滤指定属性
    5.when(gt2).map().setId(1L);//条件过滤属性
    条件过滤属性,当满足gt2的时候才会调用setId方法.


    4.对于集合的映射

    对于集合的映射,因为泛型擦除的存在,所以需要告诉ModelMapper要转换的类型,所以就有了TypeToken这个类.

    @Test
    
    public void testListToListDto() {
    
    User user1 = new User();
    
    user1.setId(1L);
    
    user1.setNickname("张三");
    
    user1.setEmail("101@qq.com");
    
    user1.setHonor("测试荣誉");
    
    User user2 = new User();
    
    user2.setId(1L);
    
    user2.setNickname("李四");
    
    user2.setEmail("101@qq.com");
    
    user2.setHonor("测试荣誉");
    
    List<User> users = new ArrayList<>();
    
    users.add(user1);
    
    users.add(user2);
    
    
    ModelMapper modelMapper = new ModelMapper();
    
    List<UserDTO> userDTOS = modelMapper.map(users,new TypeToken<List<UserDTO>>() {}.getType());
    
    System.out.println(userDTOS);
    
    }

    5.针对集合作为属性的映射

    这个是最近做项目遇到的一个问题.
    比如PageInfo里面包含了一些分页信息,和一个结果集,其中结果集是集合,我想把左边转换为右边.找了些资料,没发现特别好的办法,现在是额外定义转换器,专门对内部的List进行转换.

    ModelMapper modelMapper = new ModelMapper();
    
    modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STANDARD);
    
    //针对内部list的转换
    
    Converter<ArrayList<ArticlePC>,ArrayList<ArticleListDTO>> converter = new AbstractConverter<ArrayList<ArticlePC>, ArrayList<ArticleListDTO>>() {
    
    @Override
    
    protected ArrayList<ArticleListDTO> convert(ArrayList<ArticlePC> source) {
    
    return modelMapper.map(source,new TypeToken<ArrayList<ArticleListDTO>>(){}.getType());
    
    }
    
    };
    
    PropertyMap<PageInfo<ArticlePC>,PageInfo<ArticleListDTO>> propertyMap = new PropertyMap<PageInfo<ArticlePC>, PageInfo<ArticleListDTO>>() {
    
    @Override
    
    protected void configure() {
    
    using(converter).map(source.getList(),destination.getList());
    
    }
    
    };
    
    modelMapper.addMappings(propertyMap);
    
    modelMapper.createTypeMap(ArticlePC.class,ArticleListDTO.class);
    
    return modelMapper.map(articlePCS, new TypeToken<PageInfo<ArticleListDTO>>() {
    
    }.getType());

    目前就使用到了这些,用到其他功能再去研究下,官网有不少地方写的不是很明确,导致看的稀里糊涂的,主要是例子太少了,等用的多了再更新.

    展开全文
  • A dirichlet multinomial mixture model-based approach for short text clustering[C]//Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining.

    本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com 内容可能有不到之处,欢迎交流。
    未经本人允许禁止转载。

    论文来源

    Yin J, Wang J. A dirichlet multinomial mixture model-based approach for short text clustering[C]//Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2014: 233-242.

    论文理解及公式推理


    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    源码

    展开全文
  • Model Checking经典书籍,如果形式化验证的话属于必读系列
  • cModel

    千次阅读 2019-07-03 21:43:43
    于是有了cModel。 Just a model! Sth calced, Nth judged. ——Cicin 简介 cModel是一个Excel版本的通用开源财务框架。 引入适量vba函数,清晰化勾稽逻辑、方便化数据计算。 适合各行业的财务分析、估值...

    引子


    她说Excel:

    ①不能生孩子,

    ②不能当女友。

    我想试试。

    于是有了cModel。

     

    Just a model!

    Sth calced, Nth judged.

    ——Cicin

     

    简介


    cModel 是一个Excel版本的通用开源财务框架。

    引入适量vba函数,清晰化勾稽逻辑、方便化数据计算。

    适合各行业的财务分析、估值建模、报告撰写,以及Excel学习等。

    希望大家熟用本模型后,可以很快升值、加薪,赢取限量版全套《颈椎康复大保健指南》。

     

    功能


    序号功能说明
    1提取自动化可从 Wind 、网易等导入数据,Choice、新浪等数据源有空再优化
    2计算自动化自动格式化报表数据并且计算各个指标
    3估值多样化综合采用不同方法进行估值,自动提示报表配平的关联项
    4输出自动化对于估值结果,可以自动输出预测报表
    5排序自动化生成的报表简表自动对各个进行排序,方便分析
    6敏感性分析用vba实现迭代运算情况下的敏感性分析,解决了excel 自带分析卡顿、无法迭代运算的痛点
    7图表风格化自动输出经济学人等风格的精美图表
    8自定义函数数据提取、自定义折旧、变化率等多个有用函数,经过优化,提取数据效率约0.4秒/1万次计算
    9关联清晰化引入大量自定义名称,各个指标之间的勾稽关系异常清晰
    10提示智能化每个功能按钮均配备大量的功能提示,方便使用

    注:office2019或以上版本适用,以下版本暂不保证全部功能,后续考虑兼容。

     

    图示


    1. wind数据库、web爬虫数据导入

    2. 假设控制

    3. 支持多种参数的自动化估值

    4. 支持迭代运算的敏感性分析

    5. 格式化的报表输出

    6. 多风格的图表输出

    功能较多,不作穷举,欢迎试用 。

     

    视频( c7.gg/fCmv7 )


    https://v.qq.com/x/page/e0888ouwfu6.html

     

    说明


    • 爱心价格:本模型虽开放源码,还请付费使用,请给贫困儿童作读书类公益捐款。对于个人使用,若使用本模型超过5次,捐款金额不低于¥50;对于公司使用,每使用本模型的计算机数量增加1台,捐款增额不低于500 。

    • 爱心路径:微信→我→支付→腾讯公益,请选择教育助学类捐助;

    • 爱心延续:任何在本模型基础上做的改动,不得用于商业用途,若选择公开,需开源免费或公益性收费。

     

    下载


    • 百度网盘短网址
      http://c7.gg/fBXx2

    • 提取码:

      wm81

    说明


    • 欢迎志愿者对此模版多做功能性扩充并分享

    • 欢迎反馈bug到本公众号或 dsscicin@163.com,本工具定期不保证更新

    展开全文
  • The model.evaluatefunction predicts the output for the given input and then computes the metrics function specified in the model.compileand based on y_trueand y_predand returns the compute...

    The  model.evaluate  function predicts the output for the given input and then computes the metrics function specified in the  model.compile  and based on  y_true  and  y_pred  and returns the computed metric value as the output.

    The  model.predict  just returns back the  y_pred .

     

    model.evaluate函数预测给定输入的输出,然后计算model.compile中指定的metrics函数,并基于y_true和y_pred,并返回计算的度量值作为输出。
    model.predict只返回y_pred。

     

    model.evaluate 用于评估您训练的模型。它的输出是准确度或损失,而不是对输入数据的预测。

    model.predict 实际预测,其输出是目标值,根据输入数据预测。

     

    来源: https://www.quora.com/What-is-the-difference-between-keras-evaluate-and-keras-predict

     

    在keras中做深度网络预测时,有这两个预测函数model.predict_classes(test) 和model.predict(test),本例中是多分类,标签经过了one-hot编码,如[1,2,3,4,5]是标签类别,经编码后为[1 0 0 0 0],[0 1 0 0 0]...[0 0 0 0 1]

    model.predict_classes(test)预测的是类别,打印出来的值就是类别号
            同时只能用于序列模型来预测,不能用于函数式模型

    predict_test = model.predict_classes(X_test).astype('int')
      inverted = encoder.inverse_transform([predict_test])
      print(predict_test)
      print(inverted[0])
       [1 0 0 ... 1 0 0]
       [2. 1. 1. ... 2. 1. 1.]


    model.predict(test)预测的是数值,而且输出的还是5个编码值,不过是实数,预测后要经过argmax(predict_test,axis=1)
     

    predict_test = model.predict(X_test)
      predict = argmax(predict_test,axis=1)  #axis = 1是取行的最大值的索引,0是列的最大值的索引
      inverted = encoder.inverse_transform([predict])
      print(predict_test[0:3])
      print(argmax(predict_test,axis=1))
      print(inverted)
        [[9.9992561e-01 6.9890179e-05 2.3676146e-06 1.9608513e-06 2.5582506e-07]
         [9.9975246e-01 2.3708738e-04 4.9365349e-06 5.2166861e-06 3.3735736e-07]
         [9.9942291e-01 5.5233808e-04 8.9857504e-06 1.5617061e-05 2.4388814e-07]]
        [0 0 0 ... 0 0 0]
        [[1. 1. 1. ... 1. 1. 1.]]


            由于前几个和后几个每个预测值编码都是第一列最大,所以索引是0,反编码后是1
    --------------------- 

    原文:https://blog.csdn.net/zds13257177985/article/details/80638384 
     

    展开全文
  • 关于胖Model 和 瘦Model

    千次阅读 2016-01-14 19:39:08
    近期才知道 还有Model 还有胖...胖Model要达到的目的是,Controller从胖Model这里拿到数据之后,不用额外操作或者简单操作即可,就能直接赋值在View上例如 有时候我们请求后台请求的数据 时间 返回回来的的毫秒 5623
  • Attention model

    万次阅读 多人点赞 2016-11-08 16:14:59
    引言Attention model(AM)最先在计算机视觉中被应用于图片识别的问题,之后在自然语言处理(NLP)和计算机视觉(CV)中经常结合递归神经网络结构RNN、GRU、LSTM等深度学习算法,被称之为Recurrent Attention Model(RAM),...
  • Android如何一个model调用另一个model

    千次阅读 2019-06-16 16:11:14
    最初我的目录有两个model,且两个model都...需要的事 -首先将mine model里面的gradle文件 apply plugin: 'com.android.application'注释掉 改为 apply plugin: 'com.android.library' 再将applicationId "com.swpu...
  • Model1和Model2的区别

    千次阅读 2016-05-01 14:25:06
    前言 上篇博客最后说道一个小例子,老师讲课的时候说,他曾经听说过一个...说道Model1和Model2模式,就不得不提MVC,因为Model1和Model2都在一定程度上应用了MVC设计模式。MVC是一种混合模式,主要是为了 把视图和后
  • The model.evaluate function predicts the output for the given input and then computes the metrics function specified in the model.compile and based on y_true and y_pred and returns the compute...
  • JSP Model1 和JSP Model2

    千次阅读 2015-12-16 22:08:09
    早期的JSP规范提出了两种用JSP技术建立应用程序的方式,分别是JSP Model1和JSP Model2。我感觉model1和model2的区别关键还是在jsp的指责划分上。 Model1模式: Model1模式中,分为两层,视图层和模型层。其中jsp就...
  • 区分Model-free和Model-based方法

    千次阅读 2018-11-20 13:28:48
    强化学习方法分为Model-free和Model-based方法,那么这两种方法的区别在哪: 首先我们定义强化学习中的马尔可夫决策过程MDP,用四元组表示&lt;S,A,R,T&gt;&lt;S,A,R,T&gt;: SS:环境的状态空间 ...
  • JSONModel解析数据成Model

    千次阅读 2015-05-06 18:01:00
    JSONModel, Mantle 这两个开源库都是用来进行封装JSON->Model的, 想想看, 直接向服务器发起一个请求,然后回来后,就是一个Model, 直接使用, 这是一个多么美好的事情。 感谢GitHub的开源精神。 那...
  • Halcon之Variation Model

    千次阅读 2019-04-02 19:46:46
    Variation Model是用一幅或多幅测试图像同样板图像比较,找出差异,常用来外观缺陷检测。 创建及使用步骤: Ø1、图像准备 Ø2、创建Variation Model Ø3、图像摆正 Ø4、训练Variation Model Ø5、准备...
  • JSONModel使用

    千次阅读 2016-05-26 13:12:25
    快速的解析数据为Model模型,支持层级嵌套Model模型解析,指定类型自动转化,无需手动解析,一行代码搞定! 配合ESJsonFormat插件效果更佳! ESJSONFormatter_下载 配合ESJsonFormat效果更佳 基本使用 ...
  • asp.net + MVC中model验证

    千次阅读 2012-06-06 13:42:15
    在做表单验证的时候,我们一般都使用javascript或是jquery这种客户端的验证。... 要想做model验证, 必须要在model层先进行处理,先要引入using System.ComponentModel.DataAnnotations命名空间。下面是我的例子
  • Model confusion : Domain Model & E-R Model

    千次阅读 2005-04-05 21:47:00
    前段时间看了DDD,最近在一个项目的时候Leader要求先出E-R Model,我不是很清楚Domain Model和E-R Model具体的关系和区别。E-R Model关注的是对象的实体和关系,是Data Modeling的一种方式,建模时并不考虑Entity的...
  • 对于Java的动态Web编程技术而言,则经历了所谓的Model1和Model2时代。  Model1模式  在Web早期的开发中,通常采用的都是Model1。Model1设计模式中,主要分为两层,视图层和模型层。那 么,项目中的业务流程该...
  • 个人觉得Model1和Model是java架构的最基本的。在这两种模式的基础上,我们可以继续解耦,找到适合我们个人开发的架构。 Model1模型  Model1模型是以jsp为核心的开发模型,采用jsp+javaBeen的模式。下面看一下时序...
  • one classification的时候,训练集和测试集的样本分布是不一样的,尤其需要注意这一点。 model.train()和model.eval() 源码解析 model.train()和model.eval()对应的源代码,如下所示,但是仅仅关注这一部分是...
  • [强化学习]区分Model-free和Model-based方法

    万次阅读 多人点赞 2017-11-13 20:20:41
    所以,如果你想查看这个强化学习算法是model-based还是model-free的,你就问你自己这个问题:在agent执行它的动作之前,它是否能对下一步的状态和回报做出预测,如果可以,那么就是model-based方法,如果不能,即为...
  • Jsp Model1和Jsp Model2

    万次阅读 2012-06-12 08:22:59
    对于Java阵营的动态Web编程技术而言,则经历了所谓的Model 1和Model 2时代。 一.Jsp Model 1 1.传统的Jsp Model 1模型  Jsp是独立的,自主完成所有的任务. 2.改进的Jsp Model 1模型  Jsp页面与JavaBeans...
  • vue的model选项

    万次阅读 多人点赞 2019-05-15 15:01:08
    今天在看vue-property-decorator时,遇到了@Model选项...所以这里重新对v-model和自定义组件的v-model做一个回顾,加深印象后,再去理解model选项到底是什么的,有什么作用。 vue中的v-model指令实现了表单的双向...
  • windows下使用训练好的caffemodel做分类

    千次阅读 热门讨论 2016-11-01 13:58:30
    随着深度学习的发展,越来越多的人开始进入这个行业,希望可以有所进展,但是各行业的大牛们,速度超神,deep哈希、deep稀疏、deep分类、识别、跟踪、等等。很多人也开始训练自己的数据集或者下载别人训练好的...
  • Model1、Model2、MVC模式

    千次阅读 2018-08-20 16:55:41
    JSP Model1模式 login.jsp提交用户名(username)和密码(password)给LoginClServlet.jsp,然后LoginClServlet.jsp 先是验证用户是否合法,该文件充当控制器的作用,它的作用是接收数据等,直接操作数据库; JSP...
  • Model1Model2开发模式

    千次阅读 2013-07-17 20:25:24
    在使用JSP技术开发WEB程序时,有两种开发模式,一种是Model1模式,就是使用JSP+javaBean技术,将页面显示和业务逻辑处理分开,使用JSP实现页面的显示,javaBean对象用来保存数据和实现业务逻辑,大概可以用下图来...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 563,462
精华内容 225,384
关键字:

做model