Я успешно создал простую сеть 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')