В настоящее время я получаю сообщение об ошибке: TypeError: object of type 'NoneType' has no len()
при компиляции моего кода, и я не уверен, откуда возникла ошибка.
По сути, я пытаюсь реализовать автоматический кодер в Keras, который выполняет произвольную операцию на выходе кодера в качестве декодера. Невозможно реализовать код в tf_render_vst
с использованием операций тензорного потока. У меня есть весь написанный код, но я не понимаю, почему он не будет работать. Это возможно? - мой код вставлен ниже:
def tf_render_vst(x):
return tf.py_func(render_vst, [x], tf.float32)
def render_vst(x):
patch = rt.label_to_patch(x, fixed_params)
audio = rt.render_patch(patch, vst_path, render_config)
spect = rt.stft(audio)
return spect
input_img = Input(shape=(input_shape))
# encoding Layers
...
x = Dense(output_shape, activation='linear')(x)
encoded = Activation(soft_quantization)(x)
# Decoding Layer (render patch)
decoded = Lambda(tf_render_vst, trainable = False)(encoded)
# Full Model
autoencoder = Model(input_img, decoded)
# First Half of Autoencoder - the bit I'm interested in
encoder = Model(input_spec, encoded)
autoencoder.compile(optimizer='adadelta', loss='binary_crossentropy')
Заранее спасибо!
Редактировать: вот сообщение об ошибке -
~/.local/lib/python3.5/site-packages/keras/engine/training.py in compile(self, optimizer, loss, metrics, loss_weights, sample_weight_mode, weighted_metrics, target_tensors, **kwargs)
720 if target is None or K.is_placeholder(target):
721 if target is None:
--> 722 target = K.placeholder(ndim=len(shape),
723 name=name + '_target',
724 sparse=K.is_sparse(self.outputs[i]),</p>
<p>TypeError: object of type 'NoneType' has no len()