python - 如何在自动编码器中拆分编码器和解码器?
问题描述
我正在尝试拆分我的自动编码器,但是每当我尝试时,我都会收到此错误,而且我不知道为什么会收到此错误。我在 Windows 10 上的 python 3.7 64bit 中运行它。
inp = open('train.csv',"rb")
X = pickle.load(inp)
X = X/255.0
X = np.array(X)
X = np.reshape(X,(-1,x,y,h))
DATA = "C:/Users/dalto/Documents/geo4/dataset"
dataout = r"C:\Users\dalto\Documents\geo4\outset\video"
input_img = keras.layers.Input(shape = (x, y, h))
#make encoder
x = Conv2D(32, (3, 3), activation='relu', padding='same')(input_img)
x = MaxPooling2D((2, 2), padding='same')(x)
x = Conv2D(32, (3, 3), activation='relu', padding='same')(x)
encoded = MaxPooling2D((2, 2), padding='same')(x)
encoder = Model(input_img, encoded)
encoder.summary()
#make decoder
decoder_input= Input(shape = (32,16,32))
decoder = Conv2D(32, (3, 3), activation='relu', padding='same')(decoder_input)
x = UpSampling2D((2, 2))(decoder)
x = Conv2D(32, (3, 3), activation='relu', padding='same')(x)
x = UpSampling2D((2, 2))(x)
decoded = Conv2D(1, (3, 3), activation='sigmoid', padding='same')(x)
decoder = Model(decoder_input, decoded)
#combine them both
auto_input = Input(shape=(x, y, h))
encoded = encoder(auto_input)
decoded = decoder(encoded)
autoencoder = Model(auto_input, decoded)
autoencoder.compile(loss='mean_squared_error', optimizer =
keras.optimizers.RMSprop())
#train
autoencoder_train = autoencoder.fit(X, X,
batch_size=batch_size,epochs=epochs,verbose=1
我希望能够对某些内容进行编码并保存编码文件,然后在其上运行解码器以获取放大的文件。这是错误:
Traceback (most recent call last):
File "C:\Users\dalto\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\eager\execute.py", line 146, in make_shape
shape = tensor_shape.as_shape(v)
File "C:\Users\dalto\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\framework\tensor_shape.py", line 1211, in as_shape
return TensorShape(shape)
File "C:\Users\dalto\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\framework\tensor_shape.py", line 781, in __init__
self._dims = [as_dimension(d) for d in dims_iter]
File "C:\Users\dalto\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\framework\tensor_shape.py", line 781, in <listcomp>
self._dims = [as_dimension(d) for d in dims_iter]
File "C:\Users\dalto\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\framework\tensor_shape.py", line 723, in as_dimension
return Dimension(value)
File "C:\Users\dalto\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\framework\tensor_shape.py", line 192, in __init__
self._value = int(value)
TypeError: int() argument must be a string, a bytes-like object or a number, not 'Tensor'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\dalto\Documents\geo4\train.py", line 54, in <module>
auto_input = Input(shape=(x, y, h))
File "C:\Users\dalto\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\keras\engine\input_layer.py", line 256, in Input
input_tensor=tensor)
File "C:\Users\dalto\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\keras\engine\input_layer.py", line 123, in __init__
name=self.name)
File "C:\Users\dalto\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\keras\backend.py", line 1001, in placeholder
x = array_ops.placeholder(dtype, shape=shape, name=name)
File "C:\Users\dalto\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\ops\array_ops.py", line 2129, in placeholder
return gen_array_ops.placeholder(dtype=dtype, shape=shape, name=name)
File "C:\Users\dalto\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\ops\gen_array_ops.py", line 7398, in placeholder
shape = _execute.make_shape(shape, "shape")
File "C:\Users\dalto\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\eager\execute.py", line 148, in make_shape
raise TypeError("Error converting %s to a TensorShape: %s." % (arg_name, e))
TypeError: Error converting shape to a TensorShape: int() argument must be a string, a bytes-like object or a number, not 'Tensor'.
解决方案
推荐阅读
- python - 如何使用 Selenium 和 Python 在文本区域内发送文本
- python-3.x - 为什么这些修改后的冒泡排序算法在 python3 中不产生相同的顺序?
- python - 如何从多个列表中生成字典?
- c - 您如何枚举 libav for v4l2 中的格式、分辨率和帧速率?
- javascript - 为什么 Node.js 的异步特性使其不适合视频/图像处理?
- python - 使用 pyinstaller 创建的可执行文件不运行
- flutter - 颤动中的淡入或不透明
- laravel - Laravel in_arrary 显示标签
- r - R 查看器窗格未显示 D3 交互式图表
- python - 如何最好地将函数应用于数据框(应用()或不应用)?