我以为mask_zero=True当输入值为0时将输出0,因此以下各层可能会跳过计算或其他操作。
如何mask_zero运作?
例:
data_in = np.array([
[1, 2, 0, 0]
])
data_in.shape
>>> (1, 4)
# model
x = Input(shape=(4,))
e = Embedding(5, 5, mask_zero=True)(x)
m = Model(inputs=x, outputs=e)
p = m.predict(data_in)
print(p.shape)
print(p)
Run Code Online (Sandbox Code Playgroud)
实际输出为:(数字是随机的)
(1, 4, 5)
[[[ 0.02499047 0.04617121 0.01586803 0.0338897 0.009652 ]
[ 0.04782704 -0.04035913 -0.0341589 0.03020919 -0.01157228]
[ 0.00451764 -0.01433611 0.02606953 0.00328832 0.02650392]
[ 0.00451764 -0.01433611 0.02606953 0.00328832 0.02650392]]]
Run Code Online (Sandbox Code Playgroud)
但是,我认为输出将是:
[[[ 0.02499047 0.04617121 0.01586803 0.0338897 0.009652 ]
[ 0.04782704 -0.04035913 -0.0341589 0.03020919 …Run Code Online (Sandbox Code Playgroud) 我可以获得 OWLClass 并访问信息。类和个人都带有前缀。
有什么方法可以去掉前缀吗?
例如:
OWLClass cls = factory.getOWLClass(":Person", pm);
for (OWLIndividual indiv : cls.getIndividuals(onto)) {
System.out.println(indiv.toString());
}
Run Code Online (Sandbox Code Playgroud)
打印:
<http://www.co-ode.org/ontologies/ont.owl#Mon>
<http://www.co-ode.org/ontologies/ont.owl#Dad>
我想要的只是Mon Dad
更新:
谢谢伊格纳齐奥。
我发现关键是getIRI()方法。
for (OWLIndividual indiv : owlclass.getIndividuals(onto)) {
System.out.println(indiv.asOWLNamedIndividual().getIRI().getFragment());
}
for (OWLClassExpression expre : owlclass.getSubClasses(onto)) {
System.out.println(expre.asOWLClass().getIRI().getFragment());
}
Run Code Online (Sandbox Code Playgroud)