in recipes/streaming_convnets/tools/StreamingTDSModelConverter.cpp [103:136]
std::shared_ptr<streaming::TDSBlock> convertTDS(
int channels,
int kernelSz,
int featSz,
int rightPad,
std::vector<fl::Variable> params,
int innerLinearDim) {
auto conv1 = convertConv1d(
channels * featSz,
channels * featSz,
kernelSz,
1,
{-1, rightPad},
featSz,
params[0],
params[1]);
if (innerLinearDim == 0) {
innerLinearDim = featSz * channels;
}
auto lnorm1 = convertLayerNorm(featSz * channels, params[2], params[3]);
auto lnorm2 = convertLayerNorm(featSz * channels, params[8], params[9]);
auto lin1 =
convertLinear(featSz * channels, innerLinearDim, params[4], params[5]);
auto lin2 =
convertLinear(innerLinearDim, featSz * channels, params[6], params[7]);
return std::make_shared<streaming::TDSBlock>(
conv1,
lnorm1,
lin1,
lin2,
lnorm2,
streaming::DataType::FLOAT,
streaming::DataType::FLOAT);
}