У меня есть CNN, который я создал с помощью встраивания символов на моем компьютере с Windows 10 с использованием python 3.6 и keras 2.2.0. Я установил ту же версию на свой Mac, и независимо от того, использую ли я python 2.7 или 3.6, я получаю ошибку встраивания.
В моем слое встраивания используется входной размер 101, который является размером моей матрицы весов; Я также использую нулевую маскировку. В окнах все работает отлично, но на моем Mac, когда доходит до символа с индексом 101, я получаю следующую ошибку:
InvalidArgumentError: indices[26,6] = 101 is not in [0, 101)
Есть идеи, что происходит, и что я могу с этим поделать?
подробнее: вот информация о матрице весов и о том, как я ее использую
weights.shape = (101,101)
inputs=L.Input(shape=(length,)) `
embedding=L.Embedding(input_dim=weights.shape[0],
output_dim=weights.shape[1],
input_length=length,
weights=[weights],
mask_zero=True,trainable=False)(inputs)
Ошибка:
InvalidArgumentError: indices[31,60] = 101 is not in [0, 101)
[[Node: embedding_2/embedding_lookup = GatherV2[Taxis=DT_INT32, Tindices=DT_INT32, Tparams=DT_FLOAT, _device = "/job:localhost/replica:0/task:0/device:CPU:0"](embedding_2/embeddings/read, embedding_2/Cast, embedding_2/embedding_lookup/axis)]]
Почему да, я. Думаю, мне следует воздержаться от файла с весами, который на один больше. Просто отстой, потому что я потратил много времени на получение того, что у меня в руках. :-(
Вы используете графический процессор в Windows? Если я правильно помню, индексирование вне диапазона не вызывает ошибки с TF-gpu.