コード例 #1
0
ファイル: test_on_event.py プロジェクト: tech-pi/SRF
def pos_and_ids(stir_data_root):
    data = np.load(stir_data_root / 'position2detectorids.npz')
    return {
        'input':
        List([PositionEvent(Point(r)) for r in data['position']]),
        'expect':
        List([DetectorIdEvent(r[0], r[1] // 10, r[1]) for r in data['ids']])
    }
コード例 #2
0
 def parameters(self):
     models = List()
     if isinstance(self.init_op, Model):
         models.append(self.init_op)
     models += List(self.paths).filter(lambda m: isinstance(m, Model))
     if isinstance(self.merge, Model):
         models.append(self.merge)
     return concat(models.fmap(lambda m: m.parameters))
コード例 #3
0
def proj3to2(n: Vector) -> Matrix:
    es = List([
        Vector([1.0, 0.0, 0.0]),
        Vector([0.0, 1.0, 0.0]),
        Vector([0.0, 0.0, 1.0])
    ])
    vs = es.fmap(lambda v: proj(v, n))
    return transpose(Matrix([vs[0].unbox(), vs[1].unbox(), vs[2].unbox()]))
コード例 #4
0
def incept_path(ipath, filters):
    result = List([])
    result.append(as_model(tf.nn.elu))
    result.append(Conv2D(f'conv_in_{ipath}', filters, 1))
    for i in range(ipath):
        result.append(as_model(tf.nn.elu))
        result.append(Conv2D(f"conv_{ipath}_{i}", filters, 3))
    return Stack(result)
コード例 #5
0
def _(xs, axis=0):
    if xs is not None:
        if all(map(lambda a: isinstance(a, tf.Tensor), xs)):
            return tf.concat(xs.unbox(), axis=axis)
        if all(map(lambda a: isinstance(a, np.ndarray), xs)):
            return np.concatenate(xs.unbox(), axis=axis)
        else:
            res = List()
            for item in xs:
                res = res.extend(item)
            return res
コード例 #6
0
def generate_data_and_header(config, target):
    with open(config, 'r') as fin:
        c = json.load(fin)
    scanner = get_scanner(c['scanner']['petscanner'])
    path_data = Path(target)
    gen_sino_script(c['scanner']['petscanner'], (path_data.abs + 'sinogram'))
    path_file = c['input']['listmode']['path_file']
    data = load_h5(path_file)
    lor = List(
        LoR(PositionEvent(data['fst'][i, ]),
            PositionEvent(data['snd'][i, ]),
            weight=data['weight'][i]) for i in range(0, data['weight'].size))
    lm2sino(scanner, lor, (path_data.abs + '/sinogram.s'))
コード例 #7
0
class TestAxisToAxis:
    @pytest.mark.parametrize('src,tar',
                             List(
                                 itertools.product(RANDOM_VECTORS,
                                                   AXIS_VECTORS)))
    def test_random_axis(self, src, tar):
        # data = np.concatenate([RANDOM_VECTORS, AXIS_VECTORS])
        # axis = [Axis(np.array(data[i, :]))
        # for i in range(data.shape[0])]
        # for src in axis:
        # for tar in axis:
        # v_tar = tar.normal
        # v_src = src.normal
        # print(type(v_src))
        # print(type(v_tar))
        m = axis_to_axis(src, tar)
        det = np.linalg.det(m.unbox())
        assert abs(det) == pytest.approx(1.0)
        assert all_close(m @ src, tar)
コード例 #8
0
ファイル: test_list.py プロジェクト: tech-pi/doufo
def test_getitem_int():
    assert List([1, 2])[0] == 1
コード例 #9
0
ファイル: test_list.py プロジェクト: tech-pi/doufo
def test_add_type():
    assert isinstance(List([1]) + List([2]), List)
コード例 #10
0
ファイル: test_list.py プロジェクト: tech-pi/doufo
def test_add_value():
    assert List([1]) + List([2]) == [1, 2]
コード例 #11
0
ファイル: base.py プロジェクト: tech-pi/dxlearn
def parameters(ms):
    return concat(List([m.parameters for m in ms if isinstance(m, Model)]))
コード例 #12
0
def ndarray2listmode_positional(data: np.ndarray) -> List[LoR]:
    return List([parse_positional_event(r) for r in data])
コード例 #13
0
ファイル: test_list.py プロジェクト: tech-pi/doufo
def test_filter():
    assert List([1, 2, 3, 4, 5, 6]).filter(lambda x: x < 4) == [1, 2, 3]
コード例 #14
0
ファイル: test_list.py プロジェクト: tech-pi/doufo
def test_getitem_slice_class():
    assert isinstance(List([1, 2, 3])[:2], List)
コード例 #15
0
 def __init__(self, sources: List[Sequence[T]]):
     self.sources = List(sources)
コード例 #16
0
from dxl.shape.data import Axis, AXIS3_X, AXIS3_Y, AXIS3_Z
from doufo.tensor import Vector
from doufo.tensor import all_close
from doufo import List
import itertools
#from dxl.shape.utils.vector import Vector3
#from dxl.shape.utils.axes import Axis3, AXIS3_X, AXIS3_Z
import pytest
import math
import numpy as np

RANDOM_VECTORS = List([[0.40980446, 0.56395448, -0.71694885],
                       [-0.89215861, -0.28282346, 0.35222706],
                       [0.97295371, 0.16958264, -0.15685284],
                       [-0.79043812, -0.48951234, 0.36821901],
                       [-0.79298153, -0.55981545, 0.24038919],
                       [0.88280373, 0.38964822, -0.26235821],
                       [-0.65851061, 0.1799812, 0.73073288],
                       [0.3341779, -0.69191882, -0.63997928],
                       [-0.34021323, -0.75627046, -0.55884698],
                       [-0.0612565, -0.29257462, -0.95427865]]).fmap(Vector)

AXIS_VECTORS = List([[0., 0., 1.], [1., 0., 0.], [0., 1., 0.], [-1., 0., 0.],
                     [0., -1., 0.], [0., 0., -1.]]).fmap(Vector)

POINT_VECTORS = List([[1.0, 2.0, 0.0], [-2.0, 1.0, 0.0], [1.0, 0.0, 2.0],
                      [0.0, 2.0, -1.0]]).fmap(Vector)


class TestRotate:
    def test_rotate2(self):
        rot = rotate2(math.pi / 3)
コード例 #17
0
ファイル: unary.py プロジェクト: tech-pi/doufo
def _(t) -> List[int]:
    return List(t.shape.as_list())
コード例 #18
0
ファイル: unary.py プロジェクト: tech-pi/doufo
def _(t) -> List[int]:
    return List(t.shape)
コード例 #19
0
 def extend(self, x: 'Monoid[T]'):
     return CompositeSequence(List(self.sources).extend([x]))
コード例 #20
0
def embed2to3(n: Vector) -> Matrix:
    es = List([Vector([1.0, 0.0]), Vector([0.0, 1.0])])
    vs = es.fmap(lambda v: embed(v, n)).fmap(lambda v: v.unbox())
    return transpose(Matrix(vs))
コード例 #21
0
ファイル: test_list.py プロジェクト: tech-pi/doufo
def test_eq():
    assert List([1, 2]) == [1, 2]
コード例 #22
0
ファイル: test_list.py プロジェクト: tech-pi/doufo
def test_getitem_slice_value():
    assert List([1, 2, 3])[:2] == [1, 2]
コード例 #23
0
def moves(steps):
    xs, ys, zs = steps
    return List([Vector([x, y, z]) for x in xs for y in ys for z in zs])
コード例 #24
0
ファイル: test_list.py プロジェクト: tech-pi/doufo
def test_head():
    assert head(List([1, 2])) == 1
コード例 #25
0
import unittest
from unittest.mock import MagicMock
from jfs.api import Path
from doufo import List
import pytest
import itertools

INPUTS1 = List(['/','/tmp', '%2Ftmp', '%252Ftmp', './tmp', '/tmp/a/..'])
OUTPUTS1 = List(['/', '/tmp', '/tmp', '/tmp', 'tmp', '/tmp'])
INPUTS2 = ['/', 'tmp', '/tmp','/tmp/']
OUTPUTS2 = ['/', (Path('.')+'tmp').abs, '/tmp','/tmp']
OUTPUTS22 = ['', 'tmp', 'tmp', 'tmp']
OUTPUTS222 = [True,False,False,False]
OUTPUTS2222 = [True,False,True,True]
INPUTS3 = ['/', 'a', '/a/b', '/a/b/']
OUTPUTS3 = ['', 'a', 'b', 'b']
INPUTS4 = ['a/b', '/a/b', '/a/b/', 'a/b/']
OUTPUTS4 = [(Path('.')+'a').abs, '/a', '/a', (Path('.')+'a').abs]
INPUTS5 = ['a', 'a.txt', '/a/b.pdf', './b.zip']
OUTPUTS5 = ['','.txt','.pdf','.zip']
INPUTS6 = ['a', 'a.txt', '/a/b.tar.gz']
OUTPUTS6 = [[],['.txt'],['.tar','.gz']]
INPUTS7 = ['a', 'a/b', '/a/b', './a', '/a/b/c/..']
OUTPUTS7 = ['a', 'a/b', '/a/b', './a', '/a/b']


class TestPath:
    @pytest.mark.parametrize('input, output',list(zip(INPUTS1,OUTPUTS1)))
    def test_route(self,input,output):
        assert Path(input).route ==output
コード例 #26
0
ファイル: test_list.py プロジェクト: tech-pi/doufo
def test_eq_List():
    assert List([1, 2]) == List([1, 2])
コード例 #27
0
ファイル: test_list.py プロジェクト: tech-pi/doufo
def test_wrap_construct():
    a = List([1, 2])
    assert List(a) == [1, 2]
コード例 #28
0
ファイル: test_list.py プロジェクト: tech-pi/doufo
def test_wrap_construct_List():
    a = List(List([1, 2]))
    assert a == [1, 2]
コード例 #29
0
def id_sinogram_matlab(stir_data_root):
    data = np.load(stir_data_root / 'sinogramids.npz')
    return {k: List((v - 1).tolist()) for k, v in data.items()}