Примечание . Чтобы полностью и всесторонне ответить на этот вопрос, потребовалось бы углубиться в архитектуру обслуживания, ее API-интерфейсы и то, как они взаимодействуют с сигнатурами моделей. Я пропущу все это, чтобы сохранить ответ на приемлемой длине, но я всегда могу расширить чрезмерно неясные части, если это необходимо (оставьте комментарий, если это так).
Как модель half_plus_two знает, что делать с параметром экземпляров?
blockquote>Из-за нескольких не упомянутых причин, которые накапливаются, чтобы сделать это удобным коротким примером, если только IMO a немного вводит в заблуждение.
1) Откуда берется параметр
instances
? Определение Predict API для RESTful API имеет предопределенный формат запроса, который в одном из двух возможных формы, принимает одинinstances
параметр.2) На что отображается параметр
instances
? Мы не знаем. для SignatureDefs только с одним входомinstances
в этом очень специфическом формате вызова отображается непосредственно на вход без необходимости указывать ключ ввода ( см. раздел «Задание входных тензоров в формате строки» в Спецификации API ).Итак, что происходит: вы делаете POST-запрос к модели, в которой определен только один вход. TF Serving принимает эти входные данные и передает их в модель, запускает их до тех пор, пока не получит все значения для тензоров, определенных в части «выводы» сигнатуры модели, и вернет вам объект JSON с
key:result
элементами для каждого ключа в список «выходов».Как я могу обслуживать обученную модель из учебника по генерации текста и иметь входные параметры для модели, привязанные к уникальным методам, таким как generate_text?
blockquote>Вы не можете (не по крайней мере, непосредственное сопоставление функции с методом обслуживания. Инфраструктура обслуживания предоставляет некоторые предопределенные методы (
regress
,predict
,classify
), которые знают, как интерпретировать сигнатуры для получения запрошенного вами результата, запустив конкретные подграфы модели. Эти подграфы должны быть включены в SavedModel, поэтому, например, использованиеtf.py_func
не будет работать.Ваш лучший шанс - попытаться описать генерацию текста как подграф TF (т. Е. Используя исключительно операции TF) и написать отдельный SignatureDef, который принимает начальную строку и
num_generate
в качестве входных данных.
Поместите это в конец onCreate () в основной активности.
if (savedInstanceState == null) {
selectItem(0);
}
Добавьте регистр по умолчанию в свой код коммутатора.
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Fragment fragment = null;
switch (position) {
case 0:
fragment = new Fragment1();
break;
case 1:
fragment = new Fragment2();
break;
case 2:
fragment = new Fragment3();
break;
case 3:
fragment = new Fragment4();
break;
default:
fragment = new Fragment1();
break;
}
Попробуйте это на месте:
Fragment fragment = null;
fragment = new HomeFragment();
//HomeFragment= fragment class to launch that
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.screen_area, fragment);
fragmentTransaction.commit();
final Object lock=new Object()
), как насчет этого?
– Subhrajyoti Majumder
12.04.2020, 10:31