728x90
- tf.boolean_mask(tensor, mask, name='boolean_mask', axis=No)
tensor = [0, 1, 2, 3]
mask = np.array([True, False, True, False])
tensor2 = [[1, 2], [3, 4], [5, 6]]
mask2 = np.array([True, False, True])
with tf.Session() as sess:
print(sess.run(tf.boolean_mask(tensor, mask)))
print(sess.run(tf.boolean_mask(tensor2, mask2)))
[0 2]
[[1 2]
[5 6]]
- torch.masked_select(input, mask, *, out=None)
tensor = torch.randn(3, 4)
# ge : input >= output 반환형은 boolean
mask = tensor.ge(0.5)
print(tensor)
print(mask)
print(torch.masked_select(tensor, mask))
tensor([[ 0.2379, -0.7851, 0.6054, 1.2086],
[-1.4207, 0.4659, -0.6452, -1.4996],
[-0.1239, -0.4539, -2.0769, 0.6514]])
tensor([[False, False, True, True],
[False, False, False, False],
[False, False, False, True]])
tensor([0.6054, 1.2086, 0.6514])
True로된 값만 masking을 통해서 불러온다.
- tf.cast(x, dtype, name=None)
x = tf.constant([1.8, 2.2], dtype=tf.float32)
with tf.Session() as sess:
print(sess.run(x))
[1.8 2.2]
x = tf.dtypes.cast(x, tf.int32)
with tf.Session() as sess:
print(sess.run(x))
[1 2]
- Tensor_name.type
x = torch.tensor([1.8, 2.2])
print(x.dtype)
print(x)
x = x.type(torch.LongTensor)
print(x.dtype)
print(x)
torch.float32
tensor([1.8000, 2.2000])
torch.int64
tensor([1, 2])
torch.LongTensor-> int , torch.DoubleTensor-> float64, torch.FloatTensor-> float32
타입을 변경해주는 함수
- tf.clip_by_value(t, clip_value_min, clip_value_max, name=None)
A = tf.constant([[1, 20, 13], [3, 21, 13]])
B = tf.clip_by_value(A, clip_value_min=3, clip_value_max=13)
with tf.Session() as sess:
print(sess.run(A))
print(sess.run(B))
[[ 1 20 13]
[ 3 21 13]]
[[ 3 13 13]
[ 3 13 13]]
- torch.clamp(input, min, max)
A = torch.tensor([[1, 20, 13], [3, 21, 13]])
B = torch.clamp(A, 3, 13)
print(A)
print(B)
tensor([[ 1, 20, 13],
[ 3, 21, 13]])
tensor([[ 3, 13, 13],
[ 3, 13, 13]])
min보다 작을 경우는 min으로 값을 바꾸고 max보다 값이 클 경우에는 max로 값을 바꾸어준다.
- tf.concat(values, axis)
t1 = [[1, 2, 3], [4, 5, 6]]
t2 = [[7, 8, 9], [10, 11, 12]]
concat_0 = tf.concat([t1, t2], axis=0)
concat_1 = tf.concat([t1, t2], axis=1)
with tf.Session() as sess:
print(sess.run(concat_0))
print(sess.run(concat_1))
# concat_0
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]
# concat_1
[[ 1 2 3 7 8 9]
[ 4 5 6 10 11 12]]
- torch.cat
t1 = torch.tensor([[1, 2, 3], [4, 5, 6]])
t2 = torch.tensor([[7, 8, 9], [10, 11, 12]])
concat_0 = torch.cat([t1, t2], dim=0)
concat_1 = torch.cat([t1, t2], dim=1)
print(concat_0)
tensor([[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12]])
print(concat_1)
tensor([[ 1, 2, 3, 7, 8, 9],
[ 4, 5, 6, 10, 11, 12]])
concat 함수 많이 사용되는 함수
axis, dim = 0이면 행으로 이어붙이는 즉 위에서 아래로 붙인다.
axis, dim = 1이면 열로 이어붙이는 즉 왼쪽 오른쪽끼리 붙인다.
- tf.fill(dims, value, name=None)
t1 = tf.fill([3, 3], 225)
with tf.Session() as sess:
print(sess.run(t1))
[[225 225 225]
[225 225 225]
[225 225 225]]
- torch.full(size, fill_value)
t1 = torch.full((3, 3), 225)
print(t1)
tensor([[225, 225, 225],
[225, 225, 225],
[225, 225, 225]])
하나의 값으로 원하는 shape만큼 tensor를 만들어준다.
728x90
'Tensorflow' 카테고리의 다른 글
Tensorflow vs Pytorch 명령어 비교 -(5) (0) | 2021.06.02 |
---|---|
Tensorflow vs Pytorch -(4) (0) | 2021.05.19 |
Tensorflow vs Pytorch 명령어 비교 - (3) (0) | 2021.05.17 |
Tensorflow vs Pytorch 명령어 비교 (0) | 2021.05.14 |
Tensorflow data pipeline 구축 (0) | 2021.05.13 |
댓글