forked from SciSharp/TensorFlow.NET
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path_FetchMapper.cs
More file actions
38 lines (34 loc) · 1.18 KB
/
_FetchMapper.cs
File metadata and controls
38 lines (34 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using NumSharp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Tensorflow
{
public class _FetchMapper
{
protected List<ITensorOrOperation> _unique_fetches = new List<ITensorOrOperation>();
protected List<int[]> _value_indices = new List<int[]>();
public static _FetchMapper for_fetch(object fetch)
{
var fetches = fetch.GetType().IsArray ? (object[])fetch : new object[] { fetch };
if(fetch is List<string> fetches1)
return new _ListFetchMapper(fetches1.ToArray());
if (fetch.GetType().IsArray)
return new _ListFetchMapper(fetches);
else
return new _ElementFetchMapper(fetches, (List<NDArray> fetched_vals) => fetched_vals[0]);
}
public virtual NDArray build_results(List<NDArray> values)
{
var type = values[0].GetType();
var nd = new NDArray(type, values.Count);
nd.SetData(values.ToArray());
return nd;
}
public virtual List<ITensorOrOperation> unique_fetches()
{
return _unique_fetches;
}
}
}