Добавление собственной функции conv2d в существующий код Tensorflow - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь создать новую функцию свертки для Tensorflow, которая использует Multi Processing для более быстрых вычислений.Я относительно новичок в Tensorflow, поэтому не могу понять, что именно мне нужно сделать, чтобы моя функция работала с существующим кодом.

Это существующий код Tensorflow:

def conv2d(x,W):
    print("Applying convolution...")
    #res = tf.nn.conv2d(x,W,strides=[1,1,1,1],padding='SAME')   #This is the original function which is used.
    res = myconv.myconv(x)    #This is my function which I want to use for convolution operation
    return res

Код для функции, которую я разработал, выглядит следующим образом:

def myconv(img):
print("Inside myconv...")
processes_list = []

p1 = multiprocessing.Process(target=task1, args=(img,))
p2 = multiprocessing.Process(target=task2, args=(img,))
p3 = multiprocessing.Process(target=task3, args=(img,))
p4 = multiprocessing.Process(target=task4, args=(img,))
p5 = multiprocessing.Process(target=task5, args=(img,))

processes = []
processes.append(p1)
processes.append(p2)
processes.append(p3)
processes.append(p4)
processes.append(p5)

processes_list.append(processes)

p1.start()
p2.start()
p3.start()
p4.start()
p5.start()
active = len(multiprocessing.active_children())

count_proc = 0
for i in range(0, len(processes_list)):
    obj = processes_list[i]
    for j in range(0, len(obj)):
        processes_list[i][j].join()
        count_proc += 1

op_list=[]
temp="/home/piyushraut/PycharmProjects/Tensorflow Env/Intermediate/task"
for i in range(1,6):
    fname=temp+str(i)+".jpg"
    #print(fname)
    op_list.append(cv2.imread(fname,0))

print(op_list)
return op_list

Но когда я пытаюсь запустить эти коды вместе, я получаю следующие ошибки:

Traceback (последний вызовпоследнее):
Файл "/ home / piyushraut / PycharmProjects / Env Tensorflow / mnist_cnn.py", строка 74, в

train_cnn(x)   File "/home/piyushraut/PycharmProjects/Tensorflow Env/mnist_cnn.py", line 53, in train_cnn

prediction = cnn(x)   File "/home/piyushraut/PycharmProjects/Tensorflow Env/mnist_cnn.py", line

39, в cnn conv1 = tf.nn.relu (conv2d (x, weights ['W_conv1']) + biases ['b_conv1'])

Файл

"/ home / piyushraut / .local / lib / python3.5/site-packages/tensorflow/python/ops/variables.py ", строка 856, в _run_op return getattr (ops.Tensor, operator) (a._AsTensor (), * args)
Файл" / home / piyushraut /.local / lib / python3.5 / site-packages / tenorflow / python / ops / math_ops.py ", строка 893, в r_binary_op_wrapper x = ops.convert_to_tensor (x, dtype = y.dtype.base_dtype, name =" x ")
Файл "/home/piyushraut/.local/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", строка 1050, в convert_to_tensor as_ref = False)
Файл "/ home/piyushraut/.local/lib/python3.5/site-packages/tensorflow/python/framework/ops.py ", строка 1146, в internal_convert_to_tensor ret = translation_func (значение, dtype = dtype, name = name, as_ref = as_ref)
Файл "/home/piyushraut/.local/lib/python3.5/site-packages/tensorflow/python/framework/constant_op.py", строка 229, в _constant_tensor_conversion_function возвращает постоянную (v, dtype = dtype, name =name)
Файл "/home/piyushraut/.local/lib/python3.5/site-packages/tensorflow/python/framework/constant_op.py", строка 208, в постоянном значении, dtype = dtype, shape = shape, verify_shape = verify_shape))
Файл "/home/piyushraut/.local/lib/python3.5/site-packages/tensorflow/python/framework/tensor_util.py", строка 442, в make_tensor_proto _AssertCompatible (значения, dtype)
Файл "/home/piyushraut/.local/lib/python3.5/site-packages/tensorflow/python / framework / tenor_util.py ", строка 353, в _AssertCompatible (dtype.name, repr (несоответствие), type (несоответствие). name )) TypeError: Ожидаемый float32, полученный массив ([[0,0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], ..., [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0]], dtype = uint8) типа ndarray.

Я новичок в Tensorflow, поэтому не могу понять, в чем именно заключается проблема.Кто-нибудь может помочь мне с этой проблемой?

...