【mindspore】【Parameter】2.0.0版本自定义Parameter参数网络训练参数不更新

自定义网络中的自定义参数Parameter 

网络的construct部分定义的参数参加了计算 

网络训练定义了loss和优化器 

但结果在训练过程中不断打印Parameter的值发现一直是初始化的值没有变化 

请问有没有ms 2.0.0 CPU的官方例程,就是自定义parameter,并在训练过程中能看到参数更新的例程,我想先自行对照下看看是不是自己的代码设计问题。目前我在官网文档中只找到了如何定义的案例,暂时没有找到Parameter参数更新的案例。

****************************************************解答*****************************************************

alpha没有参与计算,所以正向的value是不变的

如果想打印梯度,可以使用value_and_grad接口,或者不需要看value直接用grad接口也行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 fastjson 2.0.0 中,实现自定义反序列化器需要实现AutoTypeSupport接口,并在ParserConfig中注册该反序列化器。 下面是一个示例,假设我们有一个Person类: ```java public class Person { private String name; private int age; public Person() { } public Person(String name, int age) { this.name = name; this.age = age; } // getter、setter方法省略 } ``` 我们想要将一个JSON字符串反序列化成Person对象,其中JSON字符串中包含了一个自定义的type字段,用于指定反序列化成哪个类。例如: ```json { "type": "student", "name": "张三", "age": 20 } ``` 我们可以定义一个自定义的反序列化器,用于根据type字段的值反序列化成不同的类。示例代码如下: ```java public class PersonDeserializer implements ObjectDeserializer, AutoTypeSupport { @Override public <T> T deserialze(DefaultJSONParser parser, Type type, Object fieldName) { JSONObject jsonObject = parser.parseObject(); String typeValue = jsonObject.getString("type"); Class<? extends Person> clazz = getTypeClass(typeValue); if (clazz == null) { throw new JSONException("Unsupported type: " + typeValue); } return parser.parseObject(jsonObject.toJSONString(), clazz); } @Override public int getFastMatchToken() { return JSONToken.LBRACE; } @Override public boolean isAutoType(Class<?> clazz, String typeName) { return clazz == Student.class || clazz == Teacher.class; } @Override public Type resolveType(String typeName) { if ("student".equals(typeName)) { return Student.class; } if ("teacher".equals(typeName)) { return Teacher.class; } return null; } private Class<? extends Person> getTypeClass(String typeName) { Type type = resolveType(typeName); if (type instanceof Class) { Class<?> clazz = (Class<?>) type; if (Person.class.isAssignableFrom(clazz)) { return (Class<? extends Person>) clazz; } } return null; } } ``` 在上面的代码中,我们实现了ObjectDeserializer和AutoTypeSupport两个接口。其中,ObjectDeserializer接口用于实现自定义反序列化逻辑,AutoTypeSupport接口用于实现自定义的类型解析规则。 在deserialze方法中,我们首先解析出JSON对象,然后根据type字段的值获取需要反序列化成的类,最后调用JSONParser的parseObject方法将JSON对象反序列化成对应的类。 在isAutoType方法中,我们指定了支持反序列化成Student和Teacher两个类。在resolveType方法中,我们根据typeName解析出对应的Class对象。 最后,在ParserConfig中注册该反序列化器: ```java ParserConfig parserConfig = new ParserConfig(); parserConfig.setAutoTypeSupport(true); parserConfig.putDeserializer(Person.class, new PersonDeserializer()); ``` 以上就是使用 fastjson 2.0.0 实现自定义反序列化器的步骤和示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值