compile_th_fn_geo()
函数是Gempy中InterpolatorModel
类中的一个方法,用于编译Geological_Function的theano
函数。这个函数计算经典地质学中用到的一些函数以生成地层属性。
compile_th_fn_geo()
函数的结构如下:
def compile_th_fn_geo(self, data_str: str,
fn: tp.List[dict] = None,
output_vars: tp.List[str] = None,
original_shape: Tuple[int, int, int] = None) -> theano.function:
函数需要输入以下参数:
data_str
: 一个字符串,定义了输入数据的结构。fn
: 一个包含了相关函数和它们的参数的列表。output_vars
: 一个包含了每个函数的输出变量名称的列表。original_shape
: 一个元组,包含了原始数据的形状信息。函数返回一个theano
函数,将之前定义的函数应用于相关数据以获得输出结果。
首先,需要构造输入数据的字符串表示形式。这告诉compile_th_fn_geo()
为每个输入变量生成哪些theano变量。data_str
格式示例:
'geo_data : 6, 3'
这个字符串包含四部分:
geo_data
: 输入数据变量的名称。:
: 分隔符,用于分割变量的名称和它们的形状。6
: 输入数据变量的第一个维度的大小。3
: 输入变量的第二个维度的大小。在这个示例中,geo_data
是由6个数据样本和3个输入特征构成的。在实践中,data_str
的格式将根据输入数据的具体形状进行修改。
接下来,需要定义函数列表。每个函数都表示为一个包含参数的字典。该字典包含以下键:
function
: 一个字符串,表示要应用的函数的名称。例如:“sin”或“exp”。input_vars
: 一个列表,包含了函数应用的输入变量的名称字符串。output_var
: 一个字符串,表示函数的输出变量的名称。因为compile_th_fn_geo()
函数可用于执行地质函数,因此定义函数列表时可以使用预定义函数。这些函数的定义包含在Gempy
软件包中。在这个示例中,可以选择用“sum”函数启动。
fn = [{'function': 'sum',
'input_vars': ['geo_data', '1'],
'output_var': 'test'}]
函数链配置完成后,只需运行编译器就可以编译Geological_Function了:
fn_theano = self.compile_th_fn_geo(data_str='geo_data : 6, 3',
fn=fn,
output_vars=['test'],
original_shape=(5, 5, 5))
此时,可以将输入数据传入compile_th_fn_geo()
函数并获得函数结果:
data = {'geo_data' : np.random.rand(6, 3)}
fn_theano(data['geo_data']) # Returns function output
compile_th_fn_geo()
函数是Gempy
软件包中InterpolatorModel
类中的一个非常重要的函数。它将地质物理学模型编译成theano
函数,该函数可用于合成和提取地质属性。对于对地质属性感兴趣的数据科学家和工程师,此功能非常有用。