نموداری که می تواند به عنوان یک تابع واحد، با امضای ورودی و خروجی فراخوانی شود.
یک تابع همچنین می تواند یک تابع tf. تعریف شده در یک SavedModelBundle
را فراخوانی کند.
ConcreteFunction myFunction = savedModelBundle.function("myFunctionSignatureName");
Map<String, Tensor> outputTensorMap = myFunction.call(inputTensorMap);
روش های عمومی
تانسور | |
نقشه< رشته، تانسور > | |
باطل | بستن () |
استاتیک ConcreteFunction | |
استاتیک ConcreteFunction | |
استاتیک ConcreteFunction | |
نمودار | نمودار () نمودار این تابع را برمیگرداند |
باطل | ذخیره (رشته exportDir) این تابع را به عنوان یک مدل ذخیره شده صادر کنید. |
جلسه | |
امضا | امضا () امضای این تابع را برمی گرداند |
رشته | toString () |
روش های ارثی
روش های عمومی
تماس تانسور عمومی (تانسور تانسور )
یک تابع را با یک ورودی و خروجی فراخوانی می کند.
تماس گیرنده مسئول بستن تمام تنسورها است.
پارامترها
تانسور | تانسور ورودی |
---|
برمی گرداند
- تانسور خروجی
پرتاب می کند
IllegalArgumentException | اگر چندین پارامتر ورودی یا خروجی در تابع تعریف شده باشد |
---|
نقشه عمومی <رشته، تنسور > فراخوانی (نقشه<رشته، تنسور > آرگومانها)
یک تابع را فراخوانی می کند.
تماس گیرنده مسئول بستن تمام تنسورها است.
پارامترها
استدلال ها | لیستی از تانسورهایی که باید در ورودی تابع ارسال شوند که با نام امضای آنها نگاشت شده است |
---|
برمی گرداند
- تانسورهای خروجی حاصل از اجرای تابع، با نام امضای آنها نگاشت شده اند
پرتاب می کند
IllegalArgumentException |
---|
بسته شدن فضای خالی عمومی ()
ایجاد ConcreteFunction ثابت عمومی ( امضا ، جلسه جلسه )
یک تابع از یک امضا و یک جلسه نمودار معتبر ایجاد کنید.
تابع نه صاحب جلسه و نه نمودار آن خواهد بود، به این معنی که طول عمر آنها فراتر از محدوده تابع است. بنابراین نیازی به بسته شدن تابع پس از استفاده نیست. به عنوان مثال:
try (Graph g = new Graph()) {
Placeholder<TFloat32> input = tf.placeholder(TFloat32.class);
Add<TFloat32> output = tf.math.add(input, tf.constant(2.0f));
Signature signature = Signature.builder().input("x", input).output("y", output).build();
try (Session s = new Session(g)) {
// Auto-closing the function just as an example but this is not required since it has
// no effect
try (ConcreteFunction f = ConcreteFunction.create(signature, s);
TFloat32 t = TFloat32.scalarOf(2.0f)) {
assertEquals(4.0f, ((TFloat32)function.call(x)).getFloat());
// Session s is still valid at this point
}
// Graph g is still valid at this point
}
}
پارامترها
امضا | امضای تابع برای ایجاد |
---|---|
جلسه | یک جلسه معتبر به یک گراف اولیه |
برمی گرداند
- یک عملکرد جدید
ایجاد ConcreteFunction ثابت عمومی (Function<Ops, Signature > functionBuilder)
با ساختن یک نمودار جدید یک تابع ایجاد می کند.
functionBuilder
باید نمودار تابع را از نمونه ارائه شده ERROR(/Ops)
مقداردهی کند و یک امضای معتبر برگرداند که برای تغذیه تانسورهای ورودی و واکشی تانسورهای خروجی در هنگام اجرا استفاده میشود.
تابع مالک نمودار جدید و جلسه حاصل از آن خواهد بود. بنابراین، تابع باید به درستی با یک بلوک try-with-resources محصور شود تا تضمین شود که تمام منابع بومی پس از حذف تابع آزاد می شوند. به عنوان مثال:
public class MyModel {
public static Signature addTwo(Ops tf) {
Placeholder<TFloat32> input = tf.placeholder(TFloat32.class);
Add<TFloat32> output = tf.math.add(input, tf.constant(2.0f));
return Signature.builder("addTwo").input("x", input).output("y", output).build();
public static void main(String args[]) {
try (ConcreteFunction function = ConcreteFunction.create(MyModel::addTwo);
TFloat32 x = TFloat32.scalarOf(2.0f)) {
assertEquals(4.0f, ((TFloat32)function.call(x)).getFloat());
}
}
}
}
پارامترها
functionBuilder | سازنده عملکرد |
---|
برمی گرداند
- تابع جدید
ایجاد ConcreteFunction ثابت عمومی ( امضای امضا، نمودار نمودار )
یک تابع از یک امضا و یک نمودار موجود ایجاد کنید.
این تابع مالکیت جلسه مورد استفاده برای اجرای نمودار را حفظ می کند، اما نه خود نمودار، به این معنی که طول عمر دومی می تواند فراتر از محدوده تابع باشد. به عنوان مثال:
try (Graph g = new Graph()) {
Placeholder<TFloat32> input = tf.placeholder(TFloat32.class);
Add<TFloat32> output = tf.math.add(input, tf.constant(2.0f));
Signature signature = Signature.builder().input("x", input).output("y", output).build();
try (ConcreteFunction f = ConcreteFunction.create(signature, g);
TFloat32 x = TFloat32.scalarOf(2.0f)) {
assertEquals(4.0f, ((TFloat32)function.call(x)).getFloat());
// Graph g is still valid at this point
}
}
پارامترها
امضا | امضای تابع برای ایجاد |
---|---|
نمودار | یک گراف معتبر و اولیه |
برمی گرداند
- یک عملکرد جدید
ذخیره خالی عمومی (String exportDir)
این تابع را به عنوان یک مدل ذخیره شده صادر کنید.
این روش میانبر مناسب معادل SavedModel.exporter(exportDir).withFunction(this).export()
است.
پارامترها
exportDir | دایرکتوری که در آن مدل ذخیره شده را صادر کنیم |
---|
پرتاب می کند
IOException | اگر مدل ذخیره شده یا وضعیت متغیر را نمی توان روی دیسک نوشت |
---|
جلسه عمومی ()
جلسه مورد استفاده برای اجرای نمودار هنگام فراخوانی این تابع را برمیگرداند
به طور کلی، کاربر نیازی به مدیریت مستقیم جلسه یک تابع ندارد و به جای آن برای اجرای نمودار به call(Map)
تکیه می کند. اما در برخی موارد، دسترسی مستقیم به جلسه ممکن است ضروری باشد، زیرا امکان اجرای گزینه های بیشتری را فراهم می کند.
برمی گرداند
- جلسه عملکرد