python - 如何在 Keras 中包含 tf.py_func 代码?
问题描述
我目前遇到一个错误:TypeError: object of type 'NoneType' has no len()
编译我的代码时,我不确定错误来自哪里。
基本上我想做的是在 Keras 中实现一个自动编码器,它对作为解码器的编码器的输出执行任意操作。tf_render_vst
使用 tensorflow 操作来实现代码是不可行的。我已经编写了所有代码,但我不明白为什么它不起作用。这可能吗?- 到目前为止,我的代码粘贴在下面:
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]),
TypeError: object of type 'NoneType' has no len()
解决方案
推荐阅读
- c# - 在 Unity 中将 InputField 配置为 IP 地址字段
- r - 为什么表达式“1”==1 的计算结果为 TRUE?
- c - 在 serialPutchar() 速度之后切换 Raspberry Pi 上的 GPIO 引脚
- c# - 当 ComboBox ItemsSource 位于 DataGridTemplateColumn 中时,如何在运行时更新它?
- java - FTPSClient 发送二进制文件:“SSLHandshakeException:握手期间远程主机关闭连接”
- delphi - 如何在 Delphi 2007 应用程序中获取已注册接口及其 GUID 的列表?
- doctrine-orm - Doctrine 2 反向 DQL 成员
- eclipse - Eclipse 启动配置为带有图标的单独工具栏按钮
- javascript - Babel 插件 - 使用索引的成员访问
- javascript - 承诺返回 null