我正在尝试复制MATLAB'sim'函数,如本文所述:Export a neural network trained with MATLAB in other programming languages但是我正在努力找到一种在C#中实现MATLAB tansig函数的方法。它定义为:a =(2 ./(1 + exp(-2 * n)) - 1)我读它的方式是我需要在矩阵上执行指数。对网络的研究表明这是一个重要的数学问题,特别是当矩阵不对称时。任何帮助表示赞赏。
答案 0 :(得分:3)
虽然有点不清楚,但我猜你正在提到将挤压功能应用于神经元的输出信号。
因此,您有效地将函数应用于浮点数而不是矩阵本身。
output = [ 1, 0, 1, 0, 1 ] # output vector from a neuron
def sqash( n ):
return (2 ./ (1 + exp(-2*n)) - 1)
squashed_output = [ sqash(1), sqash(0), sqash(1), sqash(0), sqash(1) ]
Matlab可能支持与Python中的NumPy相同的语法sqash( output )
。因此,在使用向量参数调用函数时,将函数单独应用于每个元素。
output = [ 1, 0, 1, 0, 1 ] # output vector from a neuron
def sqash( vector ):
return (2 ./ (1 + exp(-2 * vector)) - 1)
squashed_output = sqash( output )
答案 1 :(得分:1)