mirror of
https://github.com/huggingface/candle.git
synced 2025-06-18 19:47:12 +00:00
Add a simple full method. (#1455)
* Add a simple implementation of the full method. * Add the docstring.
This commit is contained in:
@ -361,6 +361,16 @@ impl Tensor {
|
|||||||
Self::new_impl(array, shape, device, false)
|
Self::new_impl(array, shape, device, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns a new tensor with all the elements having the same specified value. Note that
|
||||||
|
/// the tensor is not contiguous so you would have to call `.contiguous()` on it if needed.
|
||||||
|
pub fn full<D: crate::WithDType, S: Into<Shape>>(
|
||||||
|
value: D,
|
||||||
|
shape: S,
|
||||||
|
device: &Device,
|
||||||
|
) -> Result<Self> {
|
||||||
|
Self::from_vec_impl(vec![value], (), device, false)?.broadcast_as(shape)
|
||||||
|
}
|
||||||
|
|
||||||
/// Creates a new 1D tensor from an iterator.
|
/// Creates a new 1D tensor from an iterator.
|
||||||
pub fn from_iter<D: crate::WithDType>(
|
pub fn from_iter<D: crate::WithDType>(
|
||||||
iter: impl IntoIterator<Item = D>,
|
iter: impl IntoIterator<Item = D>,
|
||||||
|
@ -32,6 +32,14 @@ fn ones(device: &Device) -> Result<()> {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn full(device: &Device) -> Result<()> {
|
||||||
|
assert_eq!(
|
||||||
|
Tensor::full(42u32, (2, 3), device)?.to_vec2::<u32>()?,
|
||||||
|
[[42, 42, 42], [42, 42, 42]],
|
||||||
|
);
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
fn arange(device: &Device) -> Result<()> {
|
fn arange(device: &Device) -> Result<()> {
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
Tensor::arange(0u8, 5u8, device)?.to_vec1::<u8>()?,
|
Tensor::arange(0u8, 5u8, device)?.to_vec1::<u8>()?,
|
||||||
@ -1072,6 +1080,7 @@ fn randn(device: &Device) -> Result<()> {
|
|||||||
|
|
||||||
test_device!(zeros, zeros_cpu, zeros_gpu, zeros_metal);
|
test_device!(zeros, zeros_cpu, zeros_gpu, zeros_metal);
|
||||||
test_device!(ones, ones_cpu, ones_gpu, ones_metal);
|
test_device!(ones, ones_cpu, ones_gpu, ones_metal);
|
||||||
|
test_device!(full, full_cpu, full_gpu, full_metal);
|
||||||
test_device!(arange, arange_cpu, arange_gpu, arange_metal);
|
test_device!(arange, arange_cpu, arange_gpu, arange_metal);
|
||||||
test_device!(add_mul, add_mul_cpu, add_mul_gpu, add_mul_metal);
|
test_device!(add_mul, add_mul_cpu, add_mul_gpu, add_mul_metal);
|
||||||
test_device!(tensor_2d, tensor_2d_cpu, tensor_2d_gpu, tensor_2d_metal);
|
test_device!(tensor_2d, tensor_2d_cpu, tensor_2d_gpu, tensor_2d_metal);
|
||||||
|
Reference in New Issue
Block a user