是否可以使用分类器模型的输出分支到不同的模型?

时间:2018-04-06 03:25:51

标签: tensorflow machine-learning keras

例如,模型A具有输入图像并对其进行分类。假设它的输出维数为3,例如(0,1,0)。根据输出,它然后将图像传递到模型X,Y或Z.基本上我正在寻找一个层来执行这个条件?

2 个答案:

答案 0 :(得分:3)

使用Tensorflow,public class MainActivity extends AppCompatActivity implements TextWatcher { private EditText editTextUsername; private EditText editTextPassword; private Button buttonConfirm; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editTextUsername = findViewById(R.id.edit_text); editTextPassword = findViewById(R.id.edit_password); buttonConfirm = findViewById(R.id.button_confirm); editTextUsername.addTextChangedListener(this); editTextPassword.addTextChangedListener(this); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { String usernameInput = editTextUsername.getText().toString().trim(); String passwordInput = editTextPassword.getText().toString().trim(); buttonConfirm.setEnabled(!usernameInput.isEmpty() && !passwordInput.isEmpty()); } @Override public void afterTextChanged(Editable s) { } } 可能是您想要的,see doc以获取更多信息。

这里有一个例子,假设默认情况下应该使用模型Z,并假设条件是独占的:

tf.case()

答案 1 :(得分:1)

使用model.layers / input / ouput属性在keras中重用模型非常简单。

如果您想将所有内容打包到一个模型中,可以将X,Y和Z放在第一个模型的末尾。但每个模型都将被计算出来。然而,您可以在X,Y和Z的输出图层的顶部插入最后一层,这些图层将图层连接起来,并根据第一个模型的输出将这3个模型中的两个的输出拖放到零。

这样的图层需要输出4个模型作为输入,你必须自己编写逻辑。