使用map() 与 nest.map_structure() 的区别及用法中的一个例子:
def a(x):return x**2map_ob = map(a,[1,2,3])
b = list(map(a,[1,2,3]))
c = tf.nest.map_structure(a,[1,2,3])print('b',b,'\nc',c)
print('map_ob_type',type(map_ob))
print('b_type',type(b))
print('c_type',type(c))
b [1, 4, 9]
c [1, 4, 9]
map_ob_type <class 'map'>
b_type <class 'list'>
c_type <class 'list'>
对于这两个函数有:
map(func, *iterables)
tf.nest.map_structure(func, *structure, **check_types_dict)
也就是说在这个例子里 list(map()) 和 tf.nest.map_structure() 是一样的,因为后者保留了输入的 structure 的数据类型,即列表。