hmap=OrderedDict()key = T.vector('key', dtype='int64')val = T.scalar('val', dtype='int64')minus_one=T.constant(-1, dtype='int64')
def read_map(key_): return hmap.get(key_, minus_one)
def update_map(key_, val_): hmap[key_]=val_ return hmap[key_]
read_map_result, _ = theano.scan(fn=read_map, sequences=[key], outputs_info=None)read_map_f = theano.function(inputs=[key], outputs=read_map_result)
update_map_result, updates = theano.scan(fn=update_map, sequences = [key], non_sequences=val, outputs_info=None)update_map_f = theano.function(inputs=[key, val], outputs=update_map_result, updates=updates)
print(update_map_f([0, 1, 2], 5))print(read_map_f([2]))print(hmap)
[5 5 5]
[-1]
OrderedDict([(key[t], val)])