Я построил нейронную сеть для попиксельной классификации 3D-изображений.
Задача классификации очень проста и не требует сверточной сети, вместо этого я вычисляю ряд признаков (гауссовский, LoG, Sobel и т. д.) и передаю их вместе с исходным значением в классический MLP. Поскольку расчет этих функций очень медленный и не использует преимущества моего графического процессора, я подумал, что может помочь реализация Tensorflow:
Сначала я читаю бинарный файл и создаю один пакет с 3D-массивом и 1 каналом:
data_dir="/Users/Me/Documents/Data/"
filenames = [os.path.join(data_dir,'File_%05d.bin' % i ) for i in range(100)]
filename_queue = tf.train.string_input_producer(filenames)
Stack= BinChunkReader(filename_queue) #custom reader
sess = tf.Session()
print(sess.run(tf.shape(Stack))) #outputs [1 100 100 100 1]
Затем я создаю 3D-ядро, используя пользовательскую функцию, и определяю 3D-свертку:
kernel=np.ones((11,11,11,1,1),dtype='int32')
kernel[:,:,:,0,0]=Get3DKernel("LoG", Radius=6,Param=5) #custom function to produce a kernel
kernel_init=tf.constant(kernel)
TF_kernel=tf.get_variable('LoG_filter', initializer= kernel_init)
LoG=tf.nn.conv3d(Stack,TF_kernel,[1,1,1,1,1],"SAME")
но пытаюсь запустить это
sess = tf.Session()
sess.run(LoG)
выдает следующую ошибку:
InvalidArgumentError: No OpKernel was registered to support Op 'Conv3D' with these attrs. Registered devices: [CPU], Registered kernels:
device='CPU'; T in [DT_FLOAT]
device='CPU'; T in [DT_DOUBLE]
[[Node: Conv3D_1 = Conv3D[T=DT_INT32, padding="SAME", strides=[1, 1, 1, 1, 1]](Reshape, LoG_filter/read)]]
Первый вопрос: что означает эта ошибка и как реализовать 3D-свертку?
Второй вопрос: прав ли я в своем предположении, что реализация этого в тензорном потоке (в настоящее время реализованном с помощью scikit-image) будет иметь преимущество для скорости выполнения?
kernel=np.ones((11,11,11,1,1),dtype='float32')
- person GPhilo   schedule 06.09.2017Registered Devices :[CPU]
в коде ошибки, по-видимому, означает, что Tensorflow не видит ваш GPU... - person GPhilo   schedule 06.09.2017