def ExpectToken(fd, token): """ ExpectToken tries to read in the given token """ tok = read_token(fd) if tok == token: return True else: return False
def Read(self, fd): ExpectToken(fd, "<NnetIo>") self.name = read_token(fd) self.size, self.indexes = ReadIndexVector(fd) self.features = read_matrix_or_vector(fd, endian='<', return_size=False, read_binary_flag=False) ExpectToken(fd, "</NnetIo>")
def Read(self, fd): ''' Read ChainSupervision data ''' ExpectToken(fd, "<NnetChainSup>") self.name = read_token(fd) self.size, self.indexes = ReadIndexVector(fd) self.supervision = Supervision() self.supervision.Read(fd) token = read_token(fd) if token != "</NnetChainSup>": assert token == "<DW>" or token == "<DW2>" if token == "<DW>": self.deriv_weights = ReadVectorAsChar(fd, 1) else: self.deriv_weights = ReadVectorAsFloat(fd) ExpectToken(fd, "</NnetChainSup>")
def ReadVectorAsFloat(fd, binary=True): my_token = read_token(fd) if my_token == "FV": size = ReadBasicType(fd, 'int') deriv_weights = np.frombuffer(fd.read(4 * size), dtype=np.float32) elif my_token == "DV": size = ReadBasicType(fd, 'int') deriv_weights = np.frombuffer(fd.read(4 * size), dtype=np.float64) else: print("ReadVectorAsFloat error, no this type") sys.exit(1) return list(deriv_weights)
def ReadKey(fd): key = read_token(fd, set((' ', '\t', '\n'))) return key
def Read(self, fp): self._key = read_token(fp) if self._key is None: return self._key Fst.Read(self, fp) return self._key