burn_vision/backends/cpu/
ops.rs1#[cfg(feature = "ndarray")]
2mod ndarray {
3 use crate::{BoolVisionOps, FloatVisionOps, IntVisionOps, QVisionOps, VisionBackend};
4 use burn_ndarray::{
5 FloatNdArrayElement, IntNdArrayElement, NdArray, NdArrayTensor, QuantElement, SharedArray,
6 };
7
8 impl<E: FloatNdArrayElement, I: IntNdArrayElement, Q: QuantElement> BoolVisionOps
9 for NdArray<E, I, Q>
10 where
11 NdArrayTensor: From<SharedArray<E>>,
12 NdArrayTensor: From<SharedArray<I>>,
13 {
14 }
15 impl<E: FloatNdArrayElement, I: IntNdArrayElement, Q: QuantElement> IntVisionOps
16 for NdArray<E, I, Q>
17 where
18 NdArrayTensor: From<SharedArray<E>>,
19 NdArrayTensor: From<SharedArray<I>>,
20 {
21 }
22 impl<E: FloatNdArrayElement, I: IntNdArrayElement, Q: QuantElement> FloatVisionOps
23 for NdArray<E, I, Q>
24 where
25 NdArrayTensor: From<SharedArray<E>>,
26 NdArrayTensor: From<SharedArray<I>>,
27 {
28 }
29 impl<E: FloatNdArrayElement, I: IntNdArrayElement, Q: QuantElement> QVisionOps for NdArray<E, I, Q>
30 where
31 NdArrayTensor: From<SharedArray<E>>,
32 NdArrayTensor: From<SharedArray<I>>,
33 {
34 }
35 impl<E: FloatNdArrayElement, I: IntNdArrayElement, Q: QuantElement> VisionBackend
36 for NdArray<E, I, Q>
37 where
38 NdArrayTensor: From<SharedArray<E>>,
39 NdArrayTensor: From<SharedArray<I>>,
40 {
41 }
42}
43
44#[cfg(feature = "candle")]
45mod candle {
46 use crate::{BoolVisionOps, FloatVisionOps, IntVisionOps, QVisionOps, VisionBackend};
47 use burn_candle::{Candle, FloatCandleElement, IntCandleElement};
48
49 impl<F: FloatCandleElement, I: IntCandleElement> BoolVisionOps for Candle<F, I> {}
50 impl<F: FloatCandleElement, I: IntCandleElement> IntVisionOps for Candle<F, I> {}
51 impl<F: FloatCandleElement, I: IntCandleElement> FloatVisionOps for Candle<F, I> {}
52 impl<F: FloatCandleElement, I: IntCandleElement> QVisionOps for Candle<F, I> {}
53 impl<F: FloatCandleElement, I: IntCandleElement> VisionBackend for Candle<F, I> {}
54}
55
56#[cfg(feature = "tch")]
57mod tch {
58 use crate::{BoolVisionOps, FloatVisionOps, IntVisionOps, QVisionOps, VisionBackend};
59 use burn_tch::{LibTorch, TchElement};
60
61 impl<E: TchElement, Q: burn_tch::QuantElement> BoolVisionOps for LibTorch<E, Q> {}
62 impl<E: TchElement, Q: burn_tch::QuantElement> IntVisionOps for LibTorch<E, Q> {}
63 impl<E: TchElement, Q: burn_tch::QuantElement> FloatVisionOps for LibTorch<E, Q> {}
64 impl<E: TchElement, Q: burn_tch::QuantElement> QVisionOps for LibTorch<E, Q> {}
65 impl<E: TchElement, Q: burn_tch::QuantElement> VisionBackend for LibTorch<E, Q> {}
66}