5.9.6. Utils API

5.9.6. Utils API

介绍

此包提供一些常用接口,包括检查接口,日志接口,随机数接口。

主要接口

checkScalar

检查输入的标量 value 与临界值 thres 之间的关系是否满足输入条件 rel,满足则检查成功,否则抛出异常。


public func checkScalar<T>(value: T, thres: T, rel: String, argName: String, primName: String): Unit where T <: Comparable<T> & ToString

checkScalarRange

检查输入的标量 value 与下限值 lower 和上限值 upper 之间的关系是否满足输入条件 rel,满足则检查成功,否则抛出异常。


public func checkScalarRange<T>(value: T, lower: T, upper: T, rel: String, argName: String, primName: String): Unit where T <: Comparable<T> & ToString

checkTwoScalar

检查输入的标量 value1value2 之间的关系是否满足输入条件 rel,满足则检查成功,否则抛出异常。与 checkScalar 检查逻辑相同,但如果失败输出的错误信息不同,checkScalar 检查输入与一个已知标量的关系,checkTwoScalar 强调两个变量之间的关系。


public func checkTwoScalar<T>(value1: T, value2: T, rel: String, arg1Name: String, arg2Name: String, primName: String): Unit where T <: Comparable<T> & ToString

checkStr

检查输入的字符串 str 是否包含在 validTypes 中,包含则检查成功,否则抛出异常。


public func checkStr(str: String, validTypes: Array<String>, argName: String, primName: String)

checkBool

检查输入的 valuevalidMode 是否相同,相同则检查成功,否则抛出异常。


public func checkBool(value: Bool, validMode: Bool, argName: String, primName: String)

checkArray

检查数组里的每一个元素与输入的临界值 thres 的关系是否都满足 rel,满足则检查成功,否则抛出异常。


public func checkArray<T>(arr: Array<T>, thres: T, rel: String, argName: String, primName: String): Unit where T <: Comparable<T> & ToString


public func checkArray<T>(arr: Array<T>, arg2: T, rel: String, argName: String, arg2Name: String, primName: String): Unit where T <: Comparable<T> & ToString


public func checkArray<T>(arr: Array<T>, thres: Array<T>, rel: String, arg1Name: String, arg2Name: String, primName: String): Unit where T <: Comparable<T> & ToString

checkArrayRange

检查数组里的每一个元素与下限值 lower 和上限值 upper 之间的关系是否满足输入条件 rel,满足则检查成功,否则抛出异常。


public func checkArrayRange<T>(arr: Array<T>, lower: T, upper: T, rel: String, argName: String, primName: String): Unit where T <: Comparable<T> & ToString

checkTensorDtype

检查输入的类型 argType 是否包含在 validTypes 中,包含则检查成功,否则抛出异常。


public func checkTensorDtype(argType: Int32, validTypes: Array<Int32>, argName: String, primName: String)

checkTensorDtypeSame

检查输入的类型 arg1Typearg2Type 是否相同,相同则检查成功,否则抛出异常。


public func checkTensorDtypeSame(arg1Type: Int32, arg2Type: Int32, arg1Name: String, arg2Name: String, primName: String)

checkTensorRank

检查输入 value 与输入的临界值 thres 是否满足输入条件 rel。满足则检查成功,否则抛出异常。


public func checkTensorRank(value: Int64, thres: Int64, rel: String, argName: String, primName: String)


public func checkTensorRank(size: Int64, lower: Int64, upper: Int64, rel: String, argName: String, primName: String)

checkTwoTensorShape

检查输入 arr1arr2 是否相等,相等则检查成功,否则抛出异常。


public func checkTwoTensorShape(arr1: Array<Int64>, arr2: Array<Int64>, arg1Name: String, arg2Name: String, primName: String)

checkValueDebug

判断 condition 状态,输入 conditiontrue 时,程序继续执行;conditionfalse 时,程序终止,并抛出输入的异常信息 message。只在 CANGJIE_TENSORBOOST_DEBUG 选项打开时生效。


public func checkValueDebug(condition: Bool, message: String): Unit

checkValue

判断 condition 状态,输入 conditiontrue 时,程序继续执行;conditionfalse 时,程序终止,并抛出输入的异常信息 message


public func checkValue(condition: Bool, message: String): Unit

checkType

判断 condition 状态,输入 conditiontrue 时,程序继续执行;conditionfalse 时,程序终止,并抛出输入的异常信息 message


public func checkType(condition: Bool, message: String): Unit

checkRuntime

判断 condition 状态,输入 conditiontrue 时,程序继续执行;conditionfalse 时,程序终止,并抛出输入的异常信息 message


public func checkRuntime(condition: Bool, message: String): Unit

checkOverride

判断 condition 状态,输入 conditiontrue 时,程序继续执行;conditionfalse 时,程序终止,并抛出输入的异常信息 message


public func checkOverride(condition: Bool, message: String)

DType 类型

public let UNDEF_DTYPE: Int32 = -1

public let FLOAT32: Int32 = 0

public let FLOAT64: Int32 = 1

public let INT32: Int32 = 2

public let INT64: Int32 = 3

public let UINT8: Int32 = 4

public let UINT16: Int32 = 5

public let UINT32: Int32 = 6

public let BOOL: Int32 = 7

public let STRING: Int32 = 8

public let FLOAT16: Int32 = 9

public let DTYPE_MAP = HashMap<Int32, String>(
    [
        (0, "FLOAT32"),
        (1, "FLOAT64"),
        (2, "INT32"),
        (3, "INT64"),
        (4, "UINT8"),
        (5, "UINT16"),
        (6, "UINT32"),
        (7, "BOOL"),
        (8, "STRING"),
        (9, "FLOAT16")
    ]
)

数据类型 SIZE

定义了不同数据类型的大小

public let BOOL_SIZE: Int64 = 1

public let INT8_SIZE: Int64 = 1

public let UINT8_SIZE: Int64 = 1

public let INT16_SIZE: Int64 = 2

public let UINT16_SIZE: Int64 = 2

public let INT32_SIZE: Int64 = 4

public let UINT32_SIZE: Int64 = 4

public let INT64_SIZE: Int64 = 8

public let UINT64_SIZE: Int64 = 8

public let FLOAT16_SIZE: Int64 = 2

public let FLOAT32_SIZE: Int64 = 4

public let FLOAT64_SIZE: Int64 = 8

enum LogLevel

LogLevel 是表示打印日志等级的枚举类型。

public enum LogLevel {
    | DEBUG         
    | INFO          
    | WARNING       
    | ERROR         
    | EXCEPTION     
}

cjLog

此函数用于打印日志信息


public func cjLog(level: LogLevel, info: String)

setSeed

设置全局随机数种子,用在初始化,随机算子中。如果不设置种子,随机正态初始化(RandomNormalInitializer)和随机算子会使用默认种子值 0,其他初始化会随机选择一个种子值。


public func setSeed(seed: Int64)

getSeed

此函数用于获取随机数种子


public func getSeed(): Int64

getGraphSeed

此函数用于获取图级别的随机数种子


public func getGraphSeed(opSeed: Int64, kernelName: String): (Int64, Int64)

TypeException

此类用于抛出类型错误异常

public class TypeException <: Exception {
    public init()
    public init(message: String)
    public override func getClassName(): String
}

ValueException

此类用于抛出数值错误异常

public class ValueException <: Exception {
    public init()
    public init(message: String)
    public override func getClassName(): String
}

RuntimeException

此类用于抛出运行错误异常

public class RuntimeException <: Exception {
    public init()
    public init(message: String)
    public override func getClassName(): String
}

NotImplementationException

此类用于抛出未执行错误异常

public class NotImplementationException <: Exception {
    public init()
    public init(message: String)
    public override func getClassName(): String
}

setSaveGraphs

public func setSaveGraphs(saved: Bool): Unit

函数 setSaveGraphs 用户设置保存计算图功能,当入参是 true 时,启用保存计算图功能,入参是 false 时,则不保存计算图。

如开启保存计算图功能,则网络在运行前向计算时会在当前目录保存 ir 图,即产生后缀名为 .ir.dot 的文件。ir 图的说明见 MindSpore IR 文档

也可以通过设置环境变量 CANGJIETB_IR_LOG = true,保存仓颉 TensorBoost 计算图; 如果需要更多计算图信息,可以设置环境变量 CANGJIETB_IRPASS_LOG = true,保存优化前后的计算图。

【注意】:该功能仅对静态图模式有效,动态图模式无影响。

Rate this post
发表回复 0