Skip to content

Conversation

@Hniii98
Copy link

@Hniii98 Hniii98 commented Aug 21, 2025

我在实现embedinng的时候,错误地实现为1D的index数组永远只有一个元素,即只需要取一行。

    size_t offset = idx * weight->strides()[0] * llaisys::utils::dsize(weight->dtype()); // units: byte
    size_t embedding_dim = weight->shape()[1]; 

    if (weight->deviceType() == LLAISYS_DEVICE_CPU) {
        return cpu::embedding(out->data(), weight->data() + offset, weight->dtype(), 
                              embedding_dim); 
    }

运行embeding对应的测试文件

python test/ops/embedding.py 

部分结果如下图:
image

测试程序按预期输出了不同的的部分,但是却意外地仍然输出 “Test passed!”

定位错误在出在函数 test_op_embedding中

    check_equal(out_, out, strict=True)

没有对check_equal的返回值做任何处理,于是程序在测试出错的时候仍然非预期执行最后的输出

   print("\033[92mTest passed!\033[0m\n")

按照其他测试文件的风格,修改如下

    assert check_equal(out_, out, strict=True)

程序按预期断言错误
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant