zl程序教程

您现在的位置是:首页 >  其他

当前栏目

backbone学习笔记:模型(Model)(2)属性验证

属性笔记学习 模型 验证 model Backbone
2023-09-14 09:01:01 时间

Backbone的属性验证有2种方法:

  1.Backbone自带简单的验证方法,但是验证规则需要自己实现

     通过validate()方法进行验证,验证规则写在此方法里。     

复制代码
var RoomModel = Backbone.Model.extend({

 validate:function(attrs){

 //验证规则

 if(!attrs.name){

 return "名字不能为空";

});
复制代码

 

那么什么时候调用validate()完成验证呢?

   在调用save()方法时validate()方法被触发,来完成验证,如果validate()返回错误信息,那么save()方法会停止执行,模型的属性也不会被更改。失败的验证还会触发invalid事件。

   如果在set()方法中传入参数{validate:true},作为最后一个参数,也会触发validate()方法,完成验证。

   var room =new RoomModel()

    room.set(name,test,{validate:true})

以上都是属性的自动验证

属性的手动验证:room.isValid()//返回true/false,这种验证不会触发invalid事件 

 

  2.利用Backbone扩展插件Backbone.Validation进行属性验证,Backbone.Validation重写了validate()方法,常用的验证规则已经实现,可以直接使用,节约时间

    首先要从GitHub网站上下载Backbone.Validation,然后引用文件backbone-validation.js。

   使用Backbone.Validation.mixin来扩展Backbone.object():_.extend(Backbone.Model.prototype,Backbone.Validation.mixin)

    在validation属性中定义具体的验证规则    

复制代码
var UserModel = Backbone.Model.extend({

 validation:{

 name:{

 required:true

 email:{

 pattern: email

});
复制代码

 

     验证属性:

          1. required:验证模型的某个属性是否必须,值为true/false

          2.acceptance:验证某些事情是否被接收,值为true/false

          3.min:验证属性值,必须为数字,模型某个属性值只有大于或等于指定的最小值才能验证成功

          4.max:验证属性值,必须为数字,模型某个属性值只有小于或等于指定的最大值才能验证成功

          5.range:验证属性值,必须为数字,模型某个属性值只有等于指定的某个数值或者在指定的两个值之间才能验证成功

          6.length:验证属性值,模型某个属性值的长度必须为指定长度的字符串。

          7.minLength:验证属性值,必须为数字,模型某个属性值的长度只有大于或等于指定的最小值才能验证成功

          8.maxLength:验证属性值,必须为数字,模型某个属性值的长度只有小于或等于指定的最大值才能验证成功

          9.rangeLength:验证属性值,必须为数字,模型某个属性值的长度只有等于指定的某个数值或者在指定的两个值之间才能验证成功

          10.one Of:用来验证属性值,必须等于指定的数组当中的一个元素,是区分大小写的

          11.equalTo: 验证等于指定另外一个的属性值

          12.pattern:验证匹配指定的模式,模式可以是正则表达式,也可以是内置的模式名称

                      内置模式名称:

                          number:匹配任意十进制的数字

                          digits:匹配任意数字序列

                          email:匹配合法的邮件地址

                           url:匹配任意合法的URL

 

 

  

 


作者:绿茶叶 
出处:http://www.cnblogs.com/greenteaone/ 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载:http://www.cnblogs.com/greenteaone/p/4322980.html


PyTorch实现随机傅里叶特征映射的示例代码 这里我们定义了一个名为RFFeatureMap的类,它继承自PyTorch的nn.Module类。该类接受输入维度input_dim、输出维度output_dim和高斯核参数sigma作为参数。在初始化函数中,我们生成了随机正弦和余弦函数的系数omega和随机偏移量b,并将它们保存在该类的实例变量中。 在前向函数中,我们首先将输入x转换为形状为(batch_size, input_dim)的张量。然后我们通过点乘x和omega的转置,加上偏移量b,并应用余弦函数,计算出特征映射z。最后我们返回特征映射z。
假设测试数据集test_data为随机生成的,并设置小批次。model神经网络已经训练好了,怎么用MSE来做测试 其中,model表示已经训练好的PyTorch模型,torch.rand()函数用于生成测试数据集,torch.split()函数用于将测试数据集分成小批次,model(batch)用于对小批次的输入数据进行预测,torch.cat()函数用于将所有小批次的预测值拼接在一起,最后使用mean_squared_error()函数计算均方误差。注意,在计算均方误差之前,需要将测试数据集和预测值转换为NumPy数组并将它们从GPU中移动到CPU上。
model是一个模型网络,model.eval() 、model.train()是什么意思? 在PyTorch中,model.eval()是一个模型对象的方法,用于将模型设置为评估模式。当模型处于评估模式时,它会在前向传递期间禁用某些操作,如丢弃(dropout)和批量归一化(batch normalization),以确保模型的输出稳定性。
PyTorch学习笔记(五):模型定义、修改、保存 Module 类是 torch.nn 模块里提供的一个模型构造类 (nn.Module),是所有神经⽹网络模块的基类,我们可以继承它来定义我们想要的模型; PyTorch模型定义应包括两个主要部分:各个部分的初始化(_init_);数据流向定义(forward) 基于nn.Module,可以通过Sequential,ModuleList和ModuleDict三种方式定义PyTorch模型。
PyTorch模型定义 好久没更新了,2022年也过去快一半了,更文量还是不如前几年。近期会尝试加快更新的进度。 本篇文章的更新内容是PyTorch模型的定义。