用mxnet生成了params文件之后有什么用
答案:2 悬赏:70 手机版
解决时间 2021-02-10 00:06
- 提问者网友:骨子里的高雅
- 2021-02-09 04:22
用mxnet生成了params文件之后有什么用
最佳答案
- 五星知识达人网友:旧脸谱
- 2021-02-09 04:29
导入需要的模块 import numpy as np #numpy只保存数值,用于数值运算,解决Python标准库中的list只能保存对象的指针的问题 import os #本例子中没有使用到 import gzip #使用zlib来压缩和解压缩数据文件,读写gzip文件 import struct
全部回答
- 1楼网友:荒野風
- 2021-02-09 05:26
params关键字可以指定在参数数目可变处采用参数的方法参数。
在方法声明中的params关键字之后不允许任何其他参数,并且在方法声明中只允许一个params关键字。
示例
//cs_params.cs
usingsystem;
publicclassmyclass
{
publicstaticvoiduseparams(paramsint[]list)
{
for(inti=0;i<list.length;i++)
console.writeline(list[i]);
console.writeline();
}
publicstaticvoiduseparams2(paramsobject[]list)
{
for(inti=0;i<list.length;i++)
console.writeline(list[i]);
console.writeline();
}
publicstaticvoidmain()
{
useparams(1,2,3);
useparams2(1,'a',"test");
int[]myarray=newint[3]{10,11,12};
useparams(myarray);
}
}
输出
1
2
3
1
a
test
10
11
12
===============================================
方法参数上的out方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。
当希望方法返回多个值时,声明out方法非常有用。使用out参数的方法仍然可以返回一个值。一个方法可以有一个以上的out参数。
若要使用out参数,必须将参数作为out参数显式传递到方法。out参数的值不会传递到out参数。
不必初始化作为out参数传递的变量。然而,必须在方法返回之前为out参数赋值。
属性不是变量,不能作为out参数传递。
如果两个方法的声明仅在out的使用方面不同,则会发生重载。不过,无法定义仅在ref和out方面不同的重载。例如,以下重载声明是有效的:
classmyclass
{
publicvoidmymethod(inti){i=10;}
publicvoidmymethod(outinti){i=10;}
}
而以下重载声明是无效的:
classmyclass
{
publicvoidmymethod(outinti){i=10;}
publicvoidmymethod(refinti){i=10;}
}
有关传递数组的信息,请参见使用ref和out传递数组。
示例
//cs_out.cs
usingsystem;
publicclassmyclass
{
publicstaticinttestout(outchari)
{
i='b';
return-1;
}
publicstaticvoidmain()
{
chari;//variableneednotbeinitialized
console.writeline(testout(outi));
console.writeline(i);
}
}
输出
-1
b
========================================
方法参数上的ref方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。
若要使用ref参数,必须将参数作为ref参数显式传递到方法。ref参数的值被传递到ref参数。
传递到ref参数的参数必须最先初始化。将此方法与out参数相比,后者的参数在传递到out参数之前不必显式初始化。
属性不是变量,不能作为ref参数传递。
如果两种方法的声明仅在它们对ref的使用方面不同,则将出现重载。但是,无法定义仅在ref和out方面不同的重载。例如,以下重载声明是有效的:
classmyclass
{
publicvoidmymethod(inti){i=10;}
publicvoidmymethod(refinti){i=10;}
}
但以下重载声明是无效的:
classmyclass
{
publicvoidmymethod(outinti){i=10;}
publicvoidmymethod(refinti){i=10;}
}
有关传递数组的信息,请参见使用ref和out传递数组。
示例
//cs_ref.cs
usingsystem;
publicclassmyclass
{
publicstaticvoidtestref(refchari)
{
//thevalueofiwillbechangedinthecallingmethod
i='b';
}
publicstaticvoidtestnoref(chari)
{
//thevalueofiwillbeunchangedinthecallingmethod
i='c';
}
//thismethodpassesavariableasarefparameter;thevalueofthe
//variableischangedaftercontrolpassesbacktothismethod.
//thesamevariableispassedasavalueparameter;thevalueofthe
//variableisunchangedaftercontrolispassedbacktothismethod.
publicstaticvoidmain()
{
chari='a';//variablemustbeinitialized
testref(refi);//theargmustbepassedasref
console.writeline(i);
testnoref(i);
console.writeline(i);
}
}
输出
b
b
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯