class_docstr: Encrypted tensor object that uses binary sharing to perform computations.
  
  Binary shares are computed by splitting each value of the input tensor
  into n separate random values that xor together to the input tensor value,
  where n is the number of parties present in the protocol (world_size).
docstr: Generate a BinarySharedTensor from a share from each party
docstr_tok: ["Generate","a","BinarySharedTensor","from","a","share","from","each","party"]
code: def from_shares(share, precision=None, src=0, device=None):
      """Generate a BinarySharedTensor from a share from each party"""
      result = BinarySharedTensor(src=SENTINEL)
      share = share.to(device) if device is not None else share
      result.share = CUDALongTensor(share) if share.is_cuda else share
      result.encoder = FixedPointEncoder(precision_bits=precision)
      return result
  
imports: import torch
  import fate.arch.protocol.mpc.communicator
  from fate.arch.protocol.mpc.common.rng import generate_kbit_random_tensor
  from fate.arch.protocol.mpc.common.tensor_types import is_tensor
  from fate.arch.protocol.mpc.common.util import torch_cat, torch_stack
  from fate.arch.protocol.mpc.cuda import CUDALongTensor
  from fate.arch.protocol.mpc.encoder import FixedPointEncoder
  from fate.arch.protocol.mpc.functions import regular
  from .None import beaver, circuit
label_desc: Use image node_id 3 for calling the BinarySharedTensor obj's underlying member method code with example usage: obj.from_shares(share, precision, src, device) and returns: result