>

두 행렬의 내적을 계산해야합니다. 아마도 tensordot이 일을 할 것이지만 정확한 해결책을 찾기 위해 고심하고 있습니다.

간단한 옵션

res = np.dot(x, fullkernel[:, :-1].transpose())

x는 모양 (9999), 풀 커널 모양 (980,10000), 입술 모양 (1, 980)입니다.

이제 2 차원으로 비슷한 일을해야합니다. 따라서 내 x는 이제 모양 (9999, 2), 풀 커널 (2, 980, 10000)을 갖습니다.

말 그대로 결과 "res"가 2 차원이되기를 원합니다. 여기서 각각은 x의 1 열과 fullkernel의 1 차원의 dot.product입니다.

  • 답변 # 1

    다음과 같이 할 수 있습니다 :

    res = np.einsum('ki,ijk->ij', x, fullkernel[:, :, :-1])
    print(res.shape)
    # (2, 980)
    
    

    중간에 추가 싱글 톤 치수를 원하면 다음을 수행하십시오.

    res = np.expand_dims(res, 1)
    
    

    @ 와 동등한 솔루션  / np.matmul  다음과 같습니다.

    res = np.expand_dims(x.T, 1) @ np.moveaxis(fullkernel[:, :, :-1], 2, 1)
    print(res.shape)
    # (2, 1, 980)
    
    

  • 이전 javascript - Vue에서 메소드의 데이터 특성 값을 작성하십시오
  • 다음 aem 64x/osgi/servlet - 서블릿에서 osgi 서비스에 액세스하는 방법은 무엇입니까?