【问题标题】:Can one mix data types in CNTK ElementSelect?一种可以在 CNTK ElementSelect 中混合数据类型吗?
【发布时间】:2019-01-22 05:33:14
【问题描述】:

我正在尝试在 CNTK(C# 中)中执行以下操作:

a = ElementSelect(x, y, z);

期待与a[i] = (x[i] != 0 ? y[i] : z[i]) 等价的东西。但是,由于各种原因,xInt8,而 yzDouble 类型。 CNTK 正在抛出异常:

Primitive op 'Select' passed operands 'Output('Block34_Output_0', [?], [*, #]), Output('Plus47_Output_0', [?], [*, #]), Constant('Constant5', [], [])' 
with different DataTypes 'Int8' and 'Double'.

这是真的,但我有点惊讶在谓词 x 与值 yz 之间存在“相同类型”约束。

有没有办法解决这个问题?非常感谢您的帮助。

【问题讨论】:

    标签: c# cntk


    【解决方案1】:

    对于cntk的python api(v2.6),以下工作:

    a = C.input_variable(5)
    b = C.input_variable(5)
    
    c = C.element_select(a, b, b)
    
    n = np.random.random((3, 5)).astype(int)
    m = np.random.random((3, 5)).astype(np.float32)
    
    
    print(c.eval({a: n, b: m}))
    

    如果 C# 不允许,那么我建议您将 int 转换为 float。

    【讨论】:

    • 感谢提示:我试过了,然后收到错误消息“CNTK 仅支持浮点或双精度。”。老鼠。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    • 2018-05-29
    • 2017-06-28
    相关资源
    最近更新 更多