Я использую ndarray и ndarray_einsum_beta для mimi c numpy .einsum .
Я, кажется, получаю ошибка типа при попытке реализовать базовый пример c:
let m1 = arr1(&[1, 2]);
let m2 = arr2(&[[1, 2], [3, 4]]);
println!("{:?}", einsum("i,ij->j", &[&m1, &m2]));
Для обоих m1
и m2
Я получаю ошибку:
ограничение черты ndarray::ArrayBase<ndarray::OwnedRepr<{integer}>,
ndarray::Dim<[usize; 1]>>: ndarray_einsum_beta::ArrayLike<_>
не удовлетворен
черта ndarray_einsum_beta::ArrayLike<_>
не реализована для ndarray::ArrayBase<ndarray::OwnedRepr<{integer}>,
ndarray::Dim<[usize; 1]>>
примечание: требуется для приведения к объекту типа dyn
ndarray_einsum_beta::ArrayLike<_>
ржавчина c (E0277)
Как показано в консоли при компиляции:
Всего main.rs
:
use ndarray::prelude::*;
use ndarray_einsum_beta::*;
fn main() {
println!("Hello, world!");
let m1 = arr1(&[1, 2]);
let m2 = arr2(&[[1, 2], [3, 4]]);
println!("{:?}", einsum("i,ij->j", &[&m1, &m2]));
}
Всего Cargo.toml
:
[package]
name = "clean_slate"
version = "0.1.0"
authors = ["Jonathan <jonathanwoollettlight@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
ndarray = "0.13.0"
ndarray_einsum_beta = "0.4.4"
Я действительно не могу понять, что я сделал здесь неправильно, сейчас я думаю, что, возможно, плохая версия комбинации ndarray
и ndarray_eisum_beta
.
Любая помощь будет с благодарностью.