self.all_params = [embeddings, nce_weights, nce_biases] The shape of nce_biases is different from the shape of nce_weights. As a result, tl.files.save_npz(emb_net.all_params...) throws ValueError. ValueError: could not broadcast input array from shape(vocabulary_size, embedding_size) into shape(vocabulary_size)