добавление метаданных к тензорному потоку CNN - PullRequest
0 голосов
/ 12 ноября 2018

Я успешно создал простую сеть CNN для (медицинской) классификации изображений, используя tflearn. Когда я попытался добавить метаданные в CNN, я столкнулся с этой проблемой: ValueError: Невозможно передать значение формы (96, 2) для Tensor 'TargetsData / Y: 0', который имеет форму '(1390, 2)'. Любая помощь приветствуется:

#extract pictures (0 thru 4095), next two bytes for the selection, and the rest for metadata
X, Y, Z  = train_data[:,0:4096],train_data[:,4096:4098], train_data[:,4098:]
X = X.reshape([-1,64,64,1])


network = input_data(shape=[None, 64, 64, 1])
mdnetwork = input_data(shape=[None, 100])
network = conv_2d(network, 30, 3, activation='relu')
network = max_pool_2d(network, 2)
network = conv_2d(network, 30, 3, activation='relu')
network = conv_2d(network, 40, 3, activation='relu')
network = max_pool_2d(network, 2)
network = conv_2d(network, 40, 3, activation='relu')
network = conv_2d(network, 40, 3, activation='relu')
network = conv_2d(network, 30, 3, activation='relu')
network = max_pool_2d(network, 2)
network = fully_connected(network, 100, activation='relu')

Zt= fully_connected(Z, 100, activation='relu')
network = merge([network,Zt], 'concat')

network = dropout(network, 0.5)
network = fully_connected(network, 50, activation='relu')
network = fully_connected(network, 2, activation='softmax')

# Train using classifier
network = regression(network, optimizer='adam',
                 loss='categorical_crossentropy',
                 learning_rate=0.001)

model = tflearn.DNN(network, tensorboard_verbose=3)

model.fit([np.array(X).reshape(-1, 64, 64, 1), np.array(Z).reshape(-1, 100)], Y, n_epoch=5, shuffle=True, validation_set=0,
    show_metric=True, batch_size=96, run_id='my_cnn')

model.save('my_cnn.tflearn')

1 Ответ

0 голосов
/ 17 ноября 2018

Хорошо, я могу ответить на мой вопрос здесь!Во всяком случае, я нашел проблему в моем коде выше.Это была простая ошибка.Сообщение об ошибке привело меня в заблуждение.Вот решение: замените этот фрагмент кода

Zt= fully_connected(Z, 100, activation='relu')
network = merge([network,Zt], 'concat')

на

network = merge([network, mdnetwork], 'concat')

Спасибо тем, кто прочитал мой запрос.Дайте мне знать, если есть другие варианты.

...