tf-encrypted / tf-encrypted

A Framework for Encrypted Machine Learning in TensorFlow

Home Page:https://tf-encrypted.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TFE(version=0.5.9) not support Conv2D?

carlzhangweiwen opened this issue · comments

When i use tensorflow (version=1.15.3) , the code is ok. but tfe(version=0.5.9) not ok. bug?
and only when input_shape=(32,160, 160 ,3) is ok after added batch size.
the model is from tensorflow tutorials

from tf_encrypted.keras import backend as KE, Sequential
from tf_encrypted.keras.layers import Dense, Conv2D, Flatten, MaxPooling2D

model = Sequential([
    Conv2D(16, 3, padding='same', activation='relu', input_shape=(160, 160 ,3)),
    MaxPooling2D(),
    Conv2D(32, 3, padding='same', activation='relu'),
    MaxPooling2D(),
    Conv2D(64, 3, padding='same', activation='relu'),
    MaxPooling2D(),
    Flatten(),
    Dense(512, activation='relu'),
    Dense(1)
])

Traceback (most recent call last):
File "", line 10, in
File "/home/carl/.local/lib/python3.6/site-packages/tf_encrypted/keras/models/sequential.py", line 26, in init
self.add(layer)
File "/home/carl/.local/lib/python3.6/site-packages/tf_encrypted/keras/models/sequential.py", line 62, in add
y = layer(x)
File "/home/carl/.local/lib/python3.6/site-packages/tf_encrypted/keras/engine/base_layer.py", line 102, in call
outputs = self.call(inputs, *args, **kargs)
File "/home/carl/.local/lib/python3.6/site-packages/tf_encrypted/keras/layers/convolutional.py", line 164, in call
inputs = self.prot.transpose(inputs, perm=[0, 3, 1, 2])
File "/home/carl/.local/lib/python3.6/site-packages/tf_encrypted/protocol/pond/pond.py", line 1015, in transpose
x_t = _transpose_private(self, x, perm=perm)
File "/home/carl/.local/lib/python3.6/site-packages/tf_encrypted/protocol/pond/pond.py", line 3622, in _transpose_private
x0_t = x0.transpose(perm=perm)
File "/home/carl/.local/lib/python3.6/site-packages/tf_encrypted/tensor/native.py", line 286, in transpose
return DenseTensor(tf.transpose(self.value, perm))
File "/home/carl/.local/lib/python3.6/site-packages/tensorflow_core/python/ops/array_ops.py", line 1859, in transpose
ret = transpose_fn(a, perm, name=name)
File "/home/carl/.local/lib/python3.6/site-packages/tensorflow_core/python/ops/gen_array_ops.py", line 11453, in transpose
"Transpose", x=x, perm=perm, name=name)
File "/home/carl/.local/lib/python3.6/site-packages/tensorflow_core/python/framework/op_def_library.py", line 794, in _apply_op_helper
op_def=op_def)
File "/home/carl/.local/lib/python3.6/site-packages/tensorflow_core/python/util/deprecation.py", line 507, in new_func
return func(*args, **kwargs)
File "/home/carl/.local/lib/python3.6/site-packages/tensorflow_core/python/framework/ops.py", line 3357, in create_op
attrs, op_def, compute_device)
File "/home/carl/.local/lib/python3.6/site-packages/tensorflow_core/python/framework/ops.py", line 3426, in _create_op_internal
op_def=op_def)
File "/home/carl/.local/lib/python3.6/site-packages/tensorflow_core/python/framework/ops.py", line 1770, in init
control_input_ops)
File "/home/carl/.local/lib/python3.6/site-packages/tensorflow_core/python/framework/ops.py", line 1610, in _create_c_op
raise ValueError(str(e))
ValueError: Dimension must be 3 but is 4 for 'transpose/transpose' (op: 'Transpose') with input shapes: [160,160,3], [4].

I found #693 to convert tf to tfe model.