@hoff97/tensor-js
Version:
PyTorch like deep learning inferrence library
32 lines • 1.13 kB
JavaScript
import { UnaryOperation } from './unaryOperation';
export class HardSigmoidOperation extends UnaryOperation {
constructor(tensorConstructor, dtype, allocator) {
super(tensorConstructor, dtype, allocator);
}
operation(input) {
return `max(vec4(0.0,0.0,0.0,0.0), min(vec4(1.0,1.0,1.0,1.0), alpha*${input} + beta))`;
}
calc(input) {
return this.compute(input.input.shape, { X: input.input }, { alpha: input.alpha, beta: input.beta });
}
getCompilationInfo(input) {
const info = super.getCompilationInfo(input);
return Object.assign(Object.assign({}, info), { alpha: input.alpha, beta: input.beta });
}
getInputInfoString(input) {
return `${super.getInputInfoString(input)}-${input.alpha}-${input.beta}`;
}
getVariables() {
return `
${this.getVarModifier('alpha')} float alpha;
${this.getVarModifier('beta')} float beta;
`;
}
getUniformAttrs() {
return [
{ name: 'alpha', type: 'float' },
{ name: 'beta', type: 'float' },
];
}
}
//# sourceMappingURL=hardSigmoid.js.map