@@ -31,12 +31,21 @@ use std::sync::{RwLockReadGuard, RwLockWriteGuard};
31
31
/// ```
32
32
/// extern crate phloem;
33
33
/// # extern crate leaf;
34
+ /// # extern crate collenchyma as co;
34
35
/// use phloem::Blob;
35
36
/// use std::sync::{RwLock, RwLockReadGuard};
36
37
/// # use leaf::layer::ReadBlob;
38
+ /// # use co::backend::{Backend, BackendConfig};
39
+ /// # use co::frameworks::Native;
40
+ /// # use co::framework::IFramework;
41
+ /// # use std::rc::Rc;
37
42
///
38
43
/// # fn main() {
39
- /// let lock = RwLock::new(Box::new(Blob::<f32>::of_shape(vec![3])));
44
+ /// # let framework = Native::new();
45
+ /// # let hardwares = framework.hardwares();
46
+ /// # let backend_config = BackendConfig::new(framework, hardwares);
47
+ /// # let backend = Rc::new(Backend::new(backend_config).unwrap());
48
+ /// let lock = RwLock::new(Box::new(Blob::<f32>::of_shape(Some(backend.device()), &[3, 2, 3])));
40
49
/// let read_blob: ReadBlob = lock.read().unwrap();
41
50
/// # }
42
51
/// ```
@@ -60,12 +69,21 @@ pub type ReadBlob<'_> = RwLockReadGuard<'_, HeapBlob>;
60
69
/// ```
61
70
/// extern crate phloem;
62
71
/// # extern crate leaf;
72
+ /// # extern crate collenchyma as co;
63
73
/// use phloem::Blob;
64
74
/// use std::sync::{RwLock, RwLockWriteGuard};
65
75
/// # use leaf::layer::WriteBlob;
76
+ /// # use co::backend::{Backend, BackendConfig};
77
+ /// # use co::frameworks::Native;
78
+ /// # use co::framework::IFramework;
79
+ /// # use std::rc::Rc;
66
80
///
67
81
/// # fn main() {
68
- /// let lock = RwLock::new(Box::new(Blob::<f32>::of_shape(vec![3])));
82
+ /// # let framework = Native::new();
83
+ /// # let hardwares = framework.hardwares();
84
+ /// # let backend_config = BackendConfig::new(framework, hardwares);
85
+ /// # let backend = Rc::new(Backend::new(backend_config).unwrap());
86
+ /// let lock = RwLock::new(Box::new(Blob::<f32>::of_shape(Some(backend.device()), &[4, 2, 1])));
69
87
/// let read_blob: WriteBlob = lock.write().unwrap();
70
88
/// # }
71
89
/// ```
@@ -455,7 +473,7 @@ pub trait ILayer {
455
473
/// [2]: ./type.ReadBlob.html
456
474
/// [3]: ./type.WriteBlob.html
457
475
/// [3]: #method.forward_cpu
458
- #[ allow( map_clone) ]
476
+ #[ cfg_attr ( lint , allow( map_clone) ) ]
459
477
fn forward ( & self , bottom : & [ ArcLock < HeapBlob > ] , top : & mut Vec < ArcLock < HeapBlob > > ) -> f32 {
460
478
// Lock();
461
479
// Reshape(bottom, top); // Reshape the layer to fit top & bottom blob
@@ -495,7 +513,7 @@ pub trait ILayer {
495
513
/// [2]: ./type.ReadBlob.html
496
514
/// [3]: ./type.WriteBlob.html
497
515
/// [3]: #method.backward_cpu
498
- #[ allow( map_clone) ]
516
+ #[ cfg_attr ( lint , allow( map_clone) ) ]
499
517
fn backward ( & self , top : & [ ArcLock < HeapBlob > ] , propagate_down : & [ bool ] , bottom : & mut Vec < ArcLock < HeapBlob > > ) {
500
518
let tp: Vec < _ > = top. iter ( ) . map ( |b| b. read ( ) . unwrap ( ) ) . collect ( ) ;
501
519
let bt_ref = bottom. iter ( ) . cloned ( ) . collect :: < Vec < _ > > ( ) ;
0 commit comments