Python 在张量上使用字典

Python 在张量上使用字典,python,tensorflow,dictionary,tensor,Python,Tensorflow,Dictionary,Tensor,我有一个张量,想用字典 我使用44个类的实例分割,但试图合并成15个 我把数据放在tf.record上,不想每次更改类时都创建一个,所以尝试在解析器中修改它 test=tf.random.uniform(shape=(120,120), minval=0, maxval=43, dtype=tf.int32) dict2={0:0, 1:0, 2:1, 3:1, 4:1, 5:1, 6:2 , 7:

我有一个张量,想用字典

我使用44个类的实例分割,但试图合并成15个

我把数据放在tf.record上,不想每次更改类时都创建一个,所以尝试在解析器中修改它

test=tf.random.uniform(shape=(120,120), minval=0, maxval=43, dtype=tf.int32)

dict2={0:0,
      1:0,
      2:1,
      3:1,
      4:1,
      5:1,
      6:2 ,      
      7:2,
      8:2,
      9:3,
      10:3,
      11:4,
      12:4,
      13:4,
      14:5,
      15:5,
      16:5,
      17:6,
      18:7,
      19:7,
      20:7,
      21:7,
      22:8,
      23:8,
      24:8,
      25:9,
      26:9,
      27:9,
      28:9,
      29:10,
      30:10,
      31:10,
      32:10,
      33:10,
      34:11,
      35:11,
      36:12,
      37:12,
      38:12,
      39:13,
      40:13,
      41:14,
      42:14,
      43:14
      }
test2=tf.vectorized_map(dict2.get,test.ref())
错误

ValueError:尝试将不支持类型()的值()转换为张量。
这就解决了问题

keys = list(dict2.keys())
values = [dict2[k] for k in keys]
table = tf.lookup.StaticHashTable(
    tf.lookup.KeyValueTensorInitializer(keys, values),
    default_value=-1)
test2=table.lookup(test)

keys = list(dict2.keys())
values = [dict2[k] for k in keys]
table = tf.lookup.StaticHashTable(
    tf.lookup.KeyValueTensorInitializer(keys, values),
    default_value=-1)
test2=table.lookup(test)