How to deal with UserWarning: Converting sparse IndexedSlices to a dense Tensor of unknown shape

后端 未结 1 412
情深已故
情深已故 2021-01-01 21:38

I am having the following warning in Tensorflow: UserWarning: Converting sparse IndexedSlices to a dense Tensor of unknown shape. This may consume a large amount of memory.<

相关标签:
1条回答
  • 2021-01-01 22:41

    I managed to solve the issue by using tf.dynnamic_partition instead of tf.gather . I replaced the above code like this:

    # Flatten batch elements to rank-2 tensor where 1st max_length rows belong to first batch element and so forth
    all_timesteps = tf.reshape(raw_output, [-1, n_dim])  # (batch_size*max_length, n_dim)
    # Indices to last element of each sequence.
    # Index to first element is the sequence order number times max sequence length.
    # Index to last element is the index to first element plus sequence length.
    row_inds = tf.range(0, batch_size) * max_length + (seq_len - 1)
    # Creating a vector of 0s and 1s that will specify what timesteps to choose.
    partitions = tf.reduce_sum(tf.one_hot(row_inds, tf.shape(all_timesteps)[0], dtype='int32'), 0)
    # Selecting the elements we want to choose.
    last_timesteps = tf.dynamic_partition(all_timesteps, partitions, 2)  # (batch_size, n_dim)
    last_timesteps = last_timesteps[1]
    
    0 讨论(0)
提交回复
热议问题