Перевод Tensorflow Python API (math_ops) (Часть II)

искусственный интеллект TensorFlow Python API

Добавить Автора
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прибытьkk < 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.

Segment_Sum

Пример использования:

#!/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.

Segment_Prod

Пример использования:

#!/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.

Segment_Min

Пример использования:

#!/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.

Segment_Max

Пример использования:

#!/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.

Segment_Mean

Пример использования:

#!/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количество.

Unsorted_Segment_Sum

Пример использования:

#!/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нетSparseTensortype, то это исключение будет сгенерировано.

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).