Как использовать список векторов в качестве входных данных теано-функции? - PullRequest
0 голосов
/ 12 ноября 2018

Я хочу определить функцию theano.scan, которая принимает в качестве входных данных список векторов разного размера. Каков наилучший способ сделать это?

Если я сделаю глупую реализацию, как в примере ниже, я получу ошибку об индексации времени:

import theano
import theano.tensor as T
import numpy as np

def step(time): # compute the average time step of a time grid
   dt=time[1:] - time[:-1]
   return T.mean(dt)

time_list=T.vector('time_list')
results, updates=theano.scan(fn=step, sequences=[time_list])

f=theano.function(inputs=[time_list], outputs=[results], updates=updates)

time_grid_1 = np.array([0, 100, 1100, 2100, 5100])  
time_grid_2 = np.array([0, 200, 1200, 2200]) 
time_grid_3 = np.array([0, 300, 1300, 2300, 3300, 4300]) 
time_grids = [time_grid_1 , time_grid_2 , time_grid_3 ]

Я понимаю, почему я получаю ошибку: это потому, что time_list объявлен как простой 1D вектор. Следовательно, его элементы являются скалярами, поэтому нет смысла пытаться вычислить dt = время [1:] - время [: - 1].

Итак, я хотел бы определить time_list как theano список векторов, который я не смог найти в документации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...