Nano Hash - криптовалюты, майнинг, программирование

Свертка на numpi против тензорного потока 2.4

Я очень новичок в Tensorflow 2.4, и у меня есть вопрос.

пусть x = [3, 4, 5], h = [2, 1, 0]

используя numpy, я получаю

np.convolve(x, h) = [6, 11, 14, 5, 0]

но я понятия не имею, как это сделать через tensorflow 2.4.

Было бы очень полезно, если бы вы знали, как это сделать и получить тот же результат с numpy.


Ответы:


1

Хотя я думаю, что этот вопрос в основном дублирует этот вопрос, я можете использовать этот вопрос, чтобы придумать эквивалентный сценарий.

import tensorflow as tf
import numpy as np

I = [3, 4, 5]
K = [2, 1, 0]

I = [0] + I + [0]

i = tf.constant(I, dtype=tf.float32, name='i')
k = tf.constant(K, dtype=tf.float32, name='k')

data   = tf.reshape(i, [1, int(i.shape[0]), 1], name='data')
kernel = tf.reshape(k, [int(k.shape[0]), 1, 1], name='kernel')

res = tf.squeeze(tf.nn.conv1d(data, kernel[::-1], 1, 'SAME'))
print(res)
print(np.convolve(I, K, 'SAME'))

tf.Tensor([ 6. 11. 14. 5. 0.], shape=(5,), dtype=float32)

[ 6 11 14 5 0]

В вашей ситуации важно понять, как tensorflow и numpy обрабатывают отступы. Хотя связанный вопрос хорошо объясняет это, я также хотел бы отметить тот факт, что по умолчанию np.convolve дополнение full не имеет эквивалента в tensorflow conv 1d.

20.03.2021
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..