Добавить Автора
WeChat и QQ: 862251340
Публичный аккаунт WeChat: coderpai
мой блог:пожалуйста, нажмите здесь
Сейчас планируется изучить Python API в tensorflow, что облегчит обучение в будущем.
Оригинальная ссылка
В этой главе описывается API для математических символьных манипуляций.
сократить количество операций с элементами
TensorFlow предоставляет операции, которые можно использовать для выполнения стандартных математических операций по уменьшению размерности тензоров.
tf.reduce_sum(input_tensor, reduction_indices=None, keep_dims=False, name=None)
Объяснение: Эта функция предназначена для вычисления суммы элементов указанного измерения.
вдоль заданногоreduction_indices
измерение, кумулятивныйinput_tensor
Элемент этого измерения в , и, наконец, возвращает накопленное значение. еслиkeep_dims = False
, вместеreduction_indices
Измерения накапливаются, и, наконец, возвращается ранг 1.tensor
. еслиkeep_dims = True
, то накопленное значение каждого измерения возвращает ранг 1tensor
.
еслиreduction_indices
не дано, то будемinput_tensor
Все элементы накапливаются, и, наконец, возвращается скаляр.
Например:
# 'x' is [[1, 1, 1]]
# [1, 1, 1]]
tf.reduce_sum(x) ==> 6
tf.reduce_sum(x, 0) ==> [2, 2, 2]
tf.reduce_sum(x, 1) ==> [3, 3]
tf.reduce_sum(x, 1, keep_dims=True) ==> [[3], [3]]
tf.reduce_sum(x, [0, 1]) ==> 6
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant(np.random.rand(3,4))
c = tf.reduce_sum(a, 1, keep_dims = True)
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
* input_tensor
: накопительныйTensor
, который должен быть числового типа.
* reduction_indices
: Указывает совокупное измерение. еслиNone
, затем накапливаем все элементы.
* keep_dims
: еслиTrue
, то элементы в указанном измерении накапливаются, чтобы вернуть ранг 1Tensor
. еслиFalse
, то возвращается накопленный скаляр.
* name
: (необязательно) Дает имя этой операции.
Выходные параметры:
* накопительныйTensor
.
tf.reduce_prod(input_tensor, reduction_indices=None, keep_dims=False, name=None)
Объяснение: Функция этой функции состоит в том, чтобы вычислить сумму произведения элементов указанного измерения.
вдоль заданногоreduction_indices
размерность, умножениеinput_tensor
Элементы этого измерения в , и, наконец, возвращают накопленное значение. еслиkeep_dims = False
, вместеreduction_indices
Размеры умножаются, и, наконец, возвращается ранг 1.tensor
. еслиkeep_dims = True
, то совокупное значение каждого параметра возвращает ранг 1tensor
.
еслиreduction_indices
не дано, то будемinput_tensor
Все элементы перемножаются, и в конце возвращается скаляр.
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant([[2,3,1],[4,5,1]])
c = tf.reduce_prod(a, 0)
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
* input_tensor
: совокупныйTensor
, который должен быть числового типа.
* reduction_indices
: определяет размерность умножения. еслиNone
, затем перемножить все элементы.
* keep_dims
: еслиTrue
, то умножение элементов в указанном измерении возвращает ранг 1Tensor
. еслиFalse
, то возвращается кумулятивный скаляр.
* name
: (необязательно) Дает имя этой операции.
Выходные параметры:
* накопительныйTensor
.
tf.reduce_min(input_tensor, reduction_indices=None, keep_dims=False, name=None)
Объяснение: Эта функция предназначена для вычисления минимального значения среди элементов указанного измерения.
вдоль заданногоreduction_indices
размер, найтиinput_tensor
Минимальное значение элементов этого измерения в , и, наконец, это минимальное значение возвращается. еслиkeep_dims = False
, вместеreduction_indices
Измерение находит минимальное значение и, наконец, возвращает ранг 1.tensor
. еслиkeep_dims = True
, то минимальное значение каждого измерения возвращает ранг 1tensor
.
еслиreduction_indices
не дано, то беремinput_tensor
Наименьший элемент в , и, наконец, возвращает скаляр.
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant([[2,3,2],[4,5,1]])
c = tf.reduce_min(a, 0)
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
* input_tensor
: необходимость иметь дело сTensor
, который должен быть числового типа.
* reduction_indices
: указывает измерение, для которого необходимо найти минимальное значение. еслиNone
, затем найдите минимальное значение среди всех элементов.
* keep_dims
: еслиTrue
, то минимальное значение в указанном измерении возвращает ранг 1Tensor
. еслиFalse
, затем возвращает скаляр с наименьшим значением.
* name
: (необязательно) Дает имя этой операции.
Выходные параметры:
* обработанныйTensor
.
tf.reduce_max(input_tensor, reduction_indices=None, keep_dims=False, name=None)
Объяснение: Эта функция предназначена для вычисления максимального значения среди элементов указанного измерения.
вдоль заданногоreduction_indices
размер, найтиinput_tensor
Максимальное значение элементов этого измерения в , и, наконец, возвращается это максимальное значение. еслиkeep_dims = False
, вместеreduction_indices
Измерение находит максимальное значение и, наконец, возвращает ранг 1.tensor
. еслиkeep_dims = True
, то максимальное значение каждого измерения возвращает ранг 1tensor
.
еслиreduction_indices
не дано, то беремinput_tensor
Самый большой элемент в , и, наконец, возвращает скаляр.
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant([[2,3,2],[4,5,1]])
c = tf.reduce_max(a, 0)
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
* input_tensor
: необходимость иметь дело сTensor
, который должен быть числового типа.
* reduction_indices
: укажите измерение, в котором нужно найти максимальное значение. еслиNone
, затем найдите максимальное значение из всех элементов.
* keep_dims
: еслиTrue
, то максимальное значение в указанном измерении возвращает ранг 1Tensor
. еслиFalse
, затем возвращает скаляр с максимальным значением.
* name
: (необязательно) Дает имя этой операции.
Выходные параметры:
* обработанныйTensor
.
tf.reduce_mean(input_tensor, reduction_indices=None, keep_dims=False, name=None)
Объяснение: Целью этой функции является вычисление среднего значения элементов в указанном измерении.
вдоль заданногоreduction_indices
размер, найтиinput_tensor
Среднее значение элементов в этом измерении и, наконец, возвращает это среднее значение. еслиkeep_dims = False
, вместеreduction_indices
Измерение находит среднее значение и, наконец, возвращает ранг 1.tensor
. еслиkeep_dims = True
, то среднее значение каждого измерения возвращает ранг 1tensor
.
еслиreduction_indices
не дано, то беремinput_tensor
Среднее значение в , и, наконец, возвращает скаляр.
Например:
# 'x' is [[1., 1. ]]
# [2., 2.]]
tf.reduce_mean(x) ==> 1.5
tf.reduce_mean(x, 0) ==> [1.5, 1.5]
tf.reduce_mean(x, 1) ==> [1., 2.]
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant([[2,3,2],[4,5,1]], tf.float32)
c = tf.reduce_mean(a, 0)
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
* input_tensor
: необходимость иметь дело сTensor
, который должен быть числового типа.
* reduction_indices
: указывает измерение, по которому нужно найти среднее значение. еслиNone
, затем найдите среднее значение всех элементов.
* keep_dims
: еслиTrue
, то среднее значение в указанном измерении возвращает ранг 1Tensor
. еслиFalse
, затем возвращает скаляр среднего значения.
* name
: (необязательно) Дает имя этой операции.
Выходные параметры:
* обработанныйTensor
.
tf.reduce_all(input_tensor, reduction_indices=None, keep_dims=False, name=None)
Объяснение: Эта функция предназначена для вычисления логического И элементов в указанном измерении.
вдоль заданногоreduction_indices
размер, найтиinput_tensor
Логическое И элементов этого измерения в , и, наконец, возвращает значение логического И. еслиkeep_dims = False
, вместеreduction_indices
Измерение находит значение логического И и, наконец, возвращает ранг 1.tensor
. еслиkeep_dims = True
, то значение логического И каждого измерения возвращает ранг 1tensor
.
еслиreduction_indices
не дано, то беремinput_tensor
Логическое значение И в , и, наконец, возвращает скаляр.
Например:
# 'x' is [[True, True]]
# [False, False]]
tf.reduce_all(x) ==> False
tf.reduce_all(x, 0) ==> [False, False]
tf.reduce_all(x, 1) ==> [True, False]
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant([[False, False,True],[False,True,True]])
c = tf.reduce_all(a, 0)
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
* input_tensor
: необходимость иметь дело сTensor
, который должен быть числового типа.
* reduction_indices
: указывает измерение, для которого необходимо найти значение логического И. еслиNone
, затем найдите значение логического И для всех элементов.
* keep_dims
: еслиTrue
, то значение логического И в указанном измерении возвращает ранг 1Tensor
. еслиFalse
, затем возвращает скаляр со значением логического И.
* name
: (необязательно) Дает имя этой операции.
Выходные параметры:
* обработанныйTensor
.
tf.reduce_any(input_tensor, reduction_indices=None, keep_dims=False, name=None)
Объяснение: Эта функция предназначена для вычисления логического ИЛИ элементов в указанном измерении.
вдоль заданногоreduction_indices
размер, найтиinput_tensor
Логическое ИЛИ элементов этого измерения в , и, наконец, возвращает это логическое значение ИЛИ. еслиkeep_dims = False
, вместеreduction_indices
Измерение находит значение логического ИЛИ и, наконец, возвращает ранг 1.tensor
. еслиkeep_dims = True
, то логическое ИЛИ каждого измерения возвращает ранг 1tensor
.
еслиreduction_indices
не дано, то беремinput_tensor
Значение логического ИЛИ в , и, наконец, возвращает скаляр.
Например:
# 'x' is [[True, True]]
# [False, False]]
tf.reduce_all(x) ==> False
tf.reduce_all(x, 0) ==> [True, True]
tf.reduce_all(x, 1) ==> [True, False]
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant([[False, False,True],[False,True,True]])
c = tf.reduce_any(a, 0)
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
* input_tensor
: необходимость иметь дело сTensor
, который должен быть числового типа.
* reduction_indices
: указывает измерение, для которого необходимо найти значение логического ИЛИ. еслиNone
, затем найдите значение логического ИЛИ для всех элементов.
* keep_dims
: еслиTrue
, то значение логического ИЛИ в указанном измерении возвращает ранг 1Tensor
. еслиFalse
, затем возвращает скаляр со значением логического ИЛИ.
* name
: (необязательно) Дает имя этой операции.
Выходные параметры:
* обработанныйTensor
.
tf.accumulate_n(inputs, shape=None, tensor_dtype=None, name=None)
Объяснение: Цель этой функции — вычислить кумулятивную сумму каждого соответствующего элемента в списке тензоров.
в,shape
иtensor_dtype
Это необязательно, в основном для проверки того, совпадают ли измерение данных и тип данных накопленного значения, возвращаемого в конце, с предполагаемыми, если нет, будет сообщено об ошибке.
Например:
# tensor 'a' is [[1, 2], [3, 4]
# tensor `b` is [[5, 0], [0, 6]]
tf.accumulate_n([a, b, a]) ==> [[7, 4], [6, 14]]
# Explicitly pass shape and type
tf.accumulate_n([a, b, a], shape=[2, 2], tensor_dtype=tf.int32)
==> [[7, 4], [6, 14]]
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant([[1, 2], [3, 4]])
b = tf.constant([[5, 0], [0, 6]])
c = tf.accumulate_n([a,b,a], shape = [2,2])
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
* inputs
: необходимость иметь дело сTensor
список, каждый из которыхtensor
Все они должны иметь одинаковое измерение данных и тип данных.
* shape
: inputs
измерение данных.
* tensor_dtype
: inputs
тип данных.
* name
: (необязательно) Дает имя этой операции.
Выходные параметры:
* ОдинTensor
, размер данных и тип данных такие же, какinputs
такой же.
аномальный:
* еслиinputs
каждый изtensor
Если измерения данных не совпадают или предполагаемые измерения данных или типы данных неверны, будет выдано исключение.
раздельная операция
TensorFlow предоставляет операции, которые можно использовать для разделения ввода с помощью основных арифметических операций.tensor
. Операция деления здесь представляет собой разбиение по первому измерению, что эквивалентно определению разбиения от первого измерения до второго.segment_ids
Карта измерений.segment_ids
Длина тензора должна быть такой же, как и та, которую нужно разбитьtensor
размер первого измеренияd0
то же самое, гдеsegment_ids
пронумерованы от0
прибытьk
,иk < d0
. Например, если нам нужно разделитьtensor
является матрицей, тоsegment_ids
Отображение указывает на каждую строку матрицы.
Например:
c = tf.constant([[1,2,3,4], [-1,-2,-3,-4], [5,6,7,8]])
tf.segment_sum(c, tf.constant([0, 0, 1]))
==> [[0 0 0 0]
[5 6 7 8]]
tf.segment_sum(data, segment_ids, name=None)
Объяснение: Роль этой функции заключается вsegment_ids
заданное измерение, чтобы разделить тензорdata
и возвращает накопленное значение.
Формула расчета:
в,segment_ids[j] == i
.
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant([[1,2,3,4], [-1,-2,-3,-4], [5,6,7,8], [-1,-2,-3,-4]])
c = tf.segment_sum(a, tf.constant([0, 0, 1, 2]))
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
* data
: ОдинTensor
, тип данных должен быть одним из следующих:float32
,float64
,int32
,int64
,uint8
,int16
,int8
.
* segment_ids
: Одинtensor
, тип данных должен бытьint32
илиint64
, размерность данных одномерная, а длина иdata
Первое измерение имеет одинаковую длину. Значение внутри от0
прибытьk
Упорядоченное расположение, но может быть повторено.
* name
: (необязательно) Дает имя этой операции.
Выходные параметры:
* ОдинTensor
, тип данных иdata
То же самое, первое измерение данныхk
, остальные размеры иdata
такой же.
tf.segment_prod(data, segment_ids, name=None)
Объяснение: Роль этой функции заключается вsegment_ids
заданное измерение, чтобы разделить тензорdata
значение в и возвращает умноженное значение.
Формула расчета:
в,segment_ids[j] == i
.
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant([[1,2,3,4], [-1,-2,-3,-4], [5,6,7,8], [-1,-2,-3,-4]])
c = tf.segment_prod(a, tf.constant([0, 0, 1, 2]))
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
* data
: ОдинTensor
, тип данных должен быть одним из следующих:float32
,float64
,int32
,int64
,uint8
,int16
,int8
.
* segment_ids
: Одинtensor
, тип данных должен бытьint32
илиint64
, размерность данных одномерная, а длина иdata
Первое измерение имеет одинаковую длину. Значение внутри от0
прибытьk
Упорядоченное расположение, но может быть повторено.
* name
: (необязательно) Дает имя этой операции.
Выходные параметры:
* ОдинTensor
, тип данных иdata
То же самое, первое измерение данныхk
, остальные размеры иdata
такой же.
tf.segment_min(data, segment_ids, name=None)
Объяснение: Роль этой функции заключается вsegment_ids
заданное измерение, чтобы разделить тензорdata
значение и возвращает минимальное значение.
Формула расчета:
в,segment_ids[j] == i
.
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant([[1,2,3,4], [-1,-2,-3,-4], [5,6,7,8], [-1,-2,-3,-4]])
c = tf.segment_min(a, tf.constant([0, 0, 1, 2]))
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
* data
: ОдинTensor
, тип данных должен быть одним из следующих:float32
,float64
,int32
,int64
,uint8
,int16
,int8
.
* segment_ids
: Одинtensor
, тип данных должен бытьint32
илиint64
, размерность данных одномерная, а длина иdata
Первое измерение имеет одинаковую длину. Значение внутри от0
прибытьk
Упорядоченное расположение, но может быть повторено.
* name
: (необязательно) Дает имя этой операции.
Выходные параметры:
* ОдинTensor
, тип данных иdata
То же самое, первое измерение данныхk
, остальные размеры иdata
такой же.
tf.segment_max(data, segment_ids, name=None)
Объяснение: Роль этой функции заключается вsegment_ids
заданное измерение, чтобы разделить тензорdata
и возвращает максимальное значение.
Формула расчета:
в,segment_ids[j] == i
.
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant([[1,2,3,4], [-1,-2,-3,-4], [5,6,7,8], [-1,-2,-3,-4]])
c = tf.segment_max(a, tf.constant([0, 0, 1, 2]))
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
* data
: ОдинTensor
, тип данных должен быть одним из следующих:float32
,float64
,int32
,int64
,uint8
,int16
,int8
.
* segment_ids
: Одинtensor
, тип данных должен бытьint32
илиint64
, размерность данных одномерная, а длина иdata
Первое измерение имеет одинаковую длину. Значение внутри от0
прибытьk
Упорядоченное расположение, но может быть повторено.
* name
: (необязательно) Дает имя этой операции.
Выходные параметры:
* ОдинTensor
, тип данных иdata
То же самое, первое измерение данныхk
, остальные размеры иdata
такой же.
tf.segment_mean(data, segment_ids, name=None)
Объяснение: Роль этой функции заключается вsegment_ids
заданное измерение, чтобы разделить тензорdata
и возвращает среднее значение.
Формула расчета:
в,segment_ids[j] == i
.
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant([[1,2,3,4], [-1,-2,-3,-4], [5,6,7,8], [-1,-2,-3,-4]])
c = tf.segment_mean(a, tf.constant([0, 0, 1, 2]))
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
* data
: ОдинTensor
, тип данных должен быть одним из следующих:float32
,float64
,int32
,int64
,uint8
,int16
,int8
.
* segment_ids
: Одинtensor
, тип данных должен бытьint32
илиint64
, размерность данных одномерная, а длина иdata
Первое измерение имеет одинаковую длину. Значение внутри от0
прибытьk
Упорядоченное расположение, но может быть повторено.
* name
: (необязательно) Дает имя этой операции.
Выходные параметры:
* ОдинTensor
, тип данных иdata
То же самое, первое измерение данныхk
, остальные размеры иdata
такой же.
tf.unsorted_segment_sum(data, segment_ids, num_segments, name=None)
Объяснение: Роль этой функции заключается вsegment_ids
заданное измерение, чтобы разделить тензорdata
и возвращает накопленное значение.
Формула расчета:
в,segment_ids[j] == i
. этот API иSegmentSum
Большая разница в том, что этот API не требует0
прибытьk
в порядке, может быть не в порядке, и API не нужно содержать из0
прибытьk
.
Если для заданного интервала разделенияID i
,output[i] = 0
. Так,num_segmetns
должны быть равны разным отрезкамID
количество.
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant([[1,2,3,4], [-1,-2,-3,-4], [5,6,7,8], [-1,-2,-3,-4]])
c = tf.unsorted_segment_sum(a, tf.constant([0, 0, 1, 1]), 2)
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
* data
: ОдинTensor
, тип данных должен быть одним из следующих:float32
,float64
,int32
,int64
,uint8
,int16
,int8
.
* segment_ids
: Одинtensor
, тип данных должен бытьint32
илиint64
, размерность данных одномерная, а длина иdata
Первое измерение имеет одинаковую длину.
* num_segments
: Одинtensor
, тип данныхint32
.
* name
: (необязательно) Дает имя этой операции.
Выходные параметры:
* ОдинTensor
, тип данных иdata
То же самое, первое измерение данныхnum_segments
, остальные размеры иdata
такой же.
tf.sparse_segment_sum(data, indices, segment_ids, name=None)
Объяснение: Роль этой функции заключается вsegment_ids
заданное измерение, чтобы разделить тензорdata
и возвращает накопленное значение.
API иSegmentSum
почти, но APIsegment_ids
может быть меньше, чемdata
длина первого измерения, но отindices
Выберите индекс разделения, который необходимо разделить.
Например:
c = tf.constant([[1,2,3,4], [-1,-2,-3,-4], [5,6,7,8]])
# Select two rows, one segment.
tf.sparse_segment_sum(c, tf.constant([0, 1]), tf.constant([0, 0]))
==> [[0 0 0 0]]
# Select two rows, two segment.
tf.sparse_segment_sum(c, tf.constant([0, 1]), tf.constant([0, 1]))
==> [[ 1 2 3 4]
[-1 -2 -3 -4]]
# Select all rows, two segments.
tf.sparse_segment_sum(c, tf.constant([0, 1, 2]), tf.constant([0, 0, 1]))
==> [[0 0 0 0]
[5 6 7 8]]
# Which is equivalent to:
tf.segment_sum(c, tf.constant([0, 0, 1]))
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant([[1,2,3,4], [-1,-2,-3,-4], [5,6,7,8], [-1,-2,-3,-4]])
c = tf.sparse_segment_sum(a, tf.constant([0, 1, 1, 2]), tf.constant([0, 0, 1, 2]))
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
* data
: ОдинTensor
, тип данных должен быть одним из следующих:float32
,float64
,int32
,int64
,uint8
,int16
,int8
.
* indices
: Одинtensor
, тип данныхint32
, размерность данных одномерная, длина иsegment_ids
такой же.
* segment_ids
: Одинtensor
, тип данных должен бытьint32
, размерность данных является одномерной. Значения внутри расположены по порядку, но могут повторяться.
-
name
: (необязательно) Дает имя этой операции.
Выходные параметры:
* ОдинTensor
, тип данных иdata
То же самое, первое измерение данныхk
, остальные размеры иdata
такой же.
tf.sparse_segment_mean(data, indices, segment_ids, name=None)
Объяснение: Роль этой функции заключается вsegment_ids
заданное измерение, чтобы разделить тензорdata
и возвращает накопленное значение.
API иSegmentSum
почти, но APIsegment_ids
может быть меньше, чемdata
длина первого измерения, но отindices
Выберите индекс разделения, который необходимо разделить.
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant([[1,2,3,4], [-1,-2,-3,-4], [5,6,7,8], [-1,-2,-3,-4]], tf.float32)
c = tf.sparse_segment_mean(a, tf.constant([0, 1, 1, 2]), tf.constant([0, 0, 1, 2]))
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
* data
: ОдинTensor
, тип данных должен быть одним из следующих:float32
,float64
.
* indices
: Одинtensor
, тип данныхint32
, размерность данных одномерная, длина иsegment_ids
такой же.
* segment_ids
: Одинtensor
, тип данных должен бытьint32
, размерность данных является одномерной. Значения внутри расположены по порядку, но могут повторяться.
-
name
: (необязательно) Дает имя этой операции.
Выходные параметры:
* ОдинTensor
, тип данных иdata
То же самое, первое измерение данныхk
, остальные размеры иdata
такой же.
Функции сравнения последовательностей и индексации
TensorFlow предоставляет операции, которые вы можете использовать для обработки сравнений последовательностей и извлечения индексов, а также добавлять их в свои графики. Вы можете использовать эти функции, чтобы определить разницу между некоторыми последовательностями, а также определитьtensor
Индекс некоторого конкретного значения в .
tf.argmin(input, dimension, name=None)
Объяснение: Цель этой функции — вернуть индекс наименьшего значения в указанном измерении.
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant([[11,22,3,4], [2,6,3,1]])
c = tf.argmin(a, 1)
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
* input
: ОдинTensor
, тип данных должен быть одним из следующих:float32
,float64
,int64
,int32
,uint8
,uint16
,int8
,complex64
,qint8
,qint32
.
* dimension
: Одинtensor
, тип данныхint32
,0 <= dimension < rank(input)
. Этот параметр выбирает, какое измерение необходимо объединить. Если вы войдетеinput
является вектором, то мы беремdimension = 0
.
* name
: (необязательно) Дает имя этой операции.
Выходные параметры:
* ОдинTensor
, тип данныхint64
.
tf.argmax(input, dimension, name=None)
Объяснение: Эта функция предназначена для возврата индекса максимального значения в указанном измерении.
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant([[11,22,3,4], [2,6,3,1]])
c = tf.argmax(a, 1)
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
* input
: ОдинTensor
, тип данных должен быть одним из следующих:float32
,float64
,int64
,int32
,uint8
,uint16
,int8
,complex64
,qint8
,qint32
.
* dimension
: Одинtensor
, тип данныхint32
,0 <= dimension < rank(input)
. Этот параметр выбирает, какое измерение необходимо объединить. Если вы войдетеinput
является вектором, то мы беремdimension = 0
.
* name
: (необязательно) Дает имя этой операции.
Выходные параметры:
* ОдинTensor
, тип данныхint64
.
tf.listdiff(x, y, name=None)
Объяснение: Цель этой функции — вычислить разные значения элементов в двух списках.
дан списокx
и списокy
, эта операция возвращает списокout
, элементы в списке присутствуют вx
в, но не вy
середина. списокout
Элементы в соответствии с оригиналомx
в том же порядке. Эта операция также возвращает список индексовidx
,Выражатьout
Стоимость в оригиналеx
Позиция индекса в , то есть:
out[i] = x[idx[i]] for i in [0, 1, ..., len(out) - 1]
Например:
Входные данные:
x = [1, 2, 3, 4, 5, 6]
y = [1, 3, 5]
Выходные данные:
out ==> [2, 4, 6]
idx ==> [1, 3, 5]
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant([2,6,3,1])
b = tf.constant([11,22,3,4, 8])
c = tf.listdiff(a, b)
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
* x
: одномерныйTensor
, значение в нем должно быть сохранено.
* y
: одномерныйtensor
, тип данных иx
То же самое, значение внутри нужно удалить.
* name
: (необязательно) Дает имя этой операции.
Выходные параметры:
Одинtensor
Юаньцзу, элементы в нем(out, idx)
.
-
out
: Одинtensor
, тип данных иx
То же самое, размерность данных одномерная, а элементы внутри существуют вx
, но не существует сy
середина. -
idx
: Одинtensor
, тип данныхint32
, измерение данных является одномерным, а элементы внутри представляютout
Стоимость в оригиналеx
положение индекса в .
tf.where(input, name=None)
Объяснение: Цель этой функции — вернутьinput
Элемент вtrue
позиция.
Эта операция возвращаетinput
Медианаtrue
координата. Координаты хранятся в двумерномtensor
, где первое измерение представляетtrue
Количество элементов, второе измерение представляетtrue
Координаты элемента. Помните, выводtensor
Размер зависит отinput
серединаtrue
количество. А координаты внутри отсортированы поinput
сортировка в .
Например:
# 'input' tensor is [[True, False]
# [True, False]]
# 'input' has two true values, so output has two coordinates.
# 'input' has rank of 2, so coordinates have two indices.
where(input) ==> [[0, 0],
[1, 0]]
# `input` tensor is [[[True, False]
# [True, False]]
# [[False, True]
# [False, True]]
# [[False, False]
# [False, True]]]
# 'input' has 5 true values, so output has 5 coordinates.
# 'input' has rank of 3, so coordinates have three indices.
where(input) ==> [[0, 0, 0],
[0, 1, 0],
[1, 0, 1],
[1, 1, 1],
[2, 1, 1]]
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant([[True, False],[False, True]])
c = tf.where(a)
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
* input
: ОдинTensor
, тип данных логическийbool
.
* name
: (необязательно) Дает имя этой операции.
Выходные параметры:
- Один
tensor
, тип данныхint64
.
tf.unique(x, name=None)
Объяснение: Цель этой функции — найтиx
единственный элемент в .
Эта операция возвращает тензорy
, элементы внутриx
уникальное значение в , и согласно оригиналуx
в том порядке, в котором они отсортированы. Эта операция также возвращает тензор положенияidx
, размерность данных этого тензора иx
то же самое, смыслx
элементы вy
Позиция индекса в , то есть:
y[idx[i]] = x[i] for i in [0, 1,...,rank(x) - 1]
Например:
# tensor 'x' is [1, 1, 2, 4, 4, 4, 7, 8, 8]
y, idx = unique(x)
y ==> [1, 2, 4, 7, 8]
idx ==> [0, 0, 1, 2, 2, 2, 3, 4, 4]
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant([1, 1, 24, 4, 4, 4, 7, 8, 8])
c, d = tf.unique(a)
sess = tf.Session()
print sess.run(c)
print sess.run(d)
sess.close()
Входные параметры:
* x
: ОдинTensor
, размерность данных является одномерной.
* name
: (необязательно) Дает имя этой операции.
Выходные параметры:
Одинtensor
Юаньцзу, элементы в нем(y, idx)
.
-
y
: Одинtensor
, тип данных иx
Точно так же измерение данных является одномерным. -
idx
: Одинtensor
, тип данныхint32
, размерность данных является одномерной.
tf.edit_distance(hypothesis, truth, normalize=True, name='edit_distance')
Объяснение: Функция этой функции заключается в вычислении расстояния редактирования между двумя последовательностями, то есть расстояния Левенштейна.
На вход этой операции подаются две последовательности переменной длины.hypothesis
иtruth
, каждая последовательностьSparseTensor
, а затем рассчитайте расстояние редактирования. если вы будетеnormalize
Установить какtrue
, то окончательный результат будет зависеть отtruth
Длина нормализована.
Например:
Входные данные:
# 'hypothesis' is a tensor of shape `[2, 1]` with variable-length values:
# (0,0) = ["a"]
# (1,0) = ["b"]
hypothesis = tf.SparseTensor(
[[0, 0, 0],
[1, 0, 0]],
["a", "b"]
(2, 1, 1))
# 'truth' is a tensor of shape `[2, 2]` with variable-length values:
# (0,0) = []
# (0,1) = ["a"]
# (1,0) = ["b", "c"]
# (1,1) = ["a"]
truth = tf.SparseTensor(
[[0, 1, 0],
[1, 0, 0],
[1, 0, 1],
[1, 1, 0]]
["a", "b", "c", "a"],
(2, 2, 2))
normalize = True
Выходные данные:
# 'output' is a tensor of shape `[2, 2]` with edit distances normalized
# by 'truth' lengths.
output ==> [[inf, 1.0], # (0,0): no truth, (0,1): no hypothesis
[0.5, 1.0]] # (1,0): addition, (1,1): no hypothesis
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
hypothesis = tf.SparseTensor(
[[0, 0, 0],
[1, 0, 0]],
["a", "b"],
(2, 1, 1))
truth = tf.SparseTensor(
[[0, 1, 0],
[1, 0, 0],
[1, 0, 1],
[1, 1, 0]],
["a", "b", "c", "a"],
(2, 2, 2))
c = tf.edit_distance(hypothesis, truth)
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
-
hypothesis
: ОдинSparseTensor
, представляющий предполагаемую последовательность данных. -
truth
: ОдинSparseTensor
, представляющий реальную последовательность данных. -
normalize
: логический тип, если установлено значениеtrue
, то окончательный результат будет зависеть отtruth
Длина нормализована. -
name
: (необязательно) Дает имя этой операции.
Выходные параметры:
- плотный
tensor
, ранг которогоR-1
. в,R
входhypothesis
иtruth
классифицировать.
аномальный:
-
类型异常
: еслиhypothesis
иtruth
нетSparseTensor
type, то это исключение будет сгенерировано.
tf.invert_permutation(x, name=None)
Объяснение: Функция этой функции состоит в вычислении тензораx
обратная перестановка.
Эта операция заключается в вычислении тензораx
обратная перестановка. Входные параметрыx
является одномерным целым числомtensor
, который представляет индекс массива, начинающегося с 0, и меняет местами каждое значение в его позиции индекса, результатом является выводy
. выходной результатy
Конкретная формула расчета выглядит следующим образом:
y[x[i]] = i for i in [0, 1, ..., len(x) - 1]
параметрx
Должен содержать 0 и не может иметь дубликатов и отрицательных чисел.
Например:
# tensor `x` is [3, 4, 0, 2, 1]
invert_permutation(x) ==> [2, 4, 3, 0, 1]
Пример использования:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
a = tf.constant([3, 4, 0, 2, 1])
c = tf.invert_permutation(a)
sess = tf.Session()
print sess.run(c)
sess.close()
Входные параметры:
-
x
: ОдинTensor
, тип данныхint32
, размерность данных является одномерной. -
name
: (необязательно) Дает имя этой операции.
Выходные параметры:
- Один
tensor
, тип данныхint32
, размерность данных является одномерной.
CoderPai — это платформа, ориентированная на алгоритмический бой, с дизайном от базовых алгоритмов до алгоритмов искусственного интеллекта. Если вы заинтересованы в алгоритмическом бою, пожалуйста, следуйте за нами быстро. Присоединяйтесь к группе WeChat для реальных боевых действий AI, группе QQ для реальных боевых действий AI, группе WeChat по алгоритму ACM, группе QQ по алгоритму ACM. Для получения подробной информации, пожалуйста, обратите внимание на учетную запись WeChat «CoderPai» (coderpai).