public override NDArrayOrSymbol Forward(NDArrayOrSymbol x, NDArrayOrSymbol[] args) { if (x.IsNDArray) { return(CallCachedOp(args.ToList().ToNDArrays())[0]); } int[] in_fmt = null; var inputs = new List <NDArrayOrSymbol>(); inputs.Add(x); inputs.AddRange(args); (args, in_fmt) = Flatten(inputs.ToArray(), "input"); if (in_fmt != _in_format.ToArray()) { throw new Exception("Invalid input format"); } var ret = _cached_graph.Value.Item2.Shallowcopy(); SymbolDict composeArgs = new SymbolDict(); for (int i = 0; i < _cached_graph.Value.Item1.Length; i++) { composeArgs.Add(_cached_graph.Value.Item1[0].Name, args[i]); } ret.Compose(composeArgs); return(Regroup(new List <NDArrayOrSymbol[]>() { new NDArrayOrSymbol[] { ret } }, _out_format.ToList()).Item1[0]); }
/// <summary> /// Reads directory of ZipFiles. /// </summary> /// <param name="streams">FileStreams of zip container.</param> /// <param name="cd_diskId">Id of central directory in streams.</param> /// <param name="cd_offset">Offset of central directory in stream.</param> /// <param name="numberOfEntries">Number of entries in central directory.</param> private void ReadZipCentralDirectoryFileHeaders(FileStream[] streams, int cd_diskId, long cd_offset, int numberOfEntries) { var mainFileStream = streams[cd_diskId]; mainFileStream.Seek(cd_offset, SeekOrigin.Begin); //Deserialize stream data according to number of Entries for (uint i = 0; i < numberOfEntries; i++) { var cd_fileHeader = new TZipCentralDirectoryFileHeader(); cd_fileHeader.Load(mainFileStream); // is file or directory? var fileName = SanitizeFilename(cd_fileHeader.filename); if (fileName.Last() != '\\') { m_Files.Add(fileName, new SubFileHeader() { ZipFileIndex = cd_fileHeader.diskStart, CompressedSize = (long)cd_fileHeader.sizeComp, UncompressedSize = (long)cd_fileHeader.sizeUncomp, LocalHeaderOffset = (long)cd_fileHeader.hdrRelOffset, LocalHeaderSize = 0 }); } else { this.m_Directories.Add(fileName.Substring(0, cd_fileHeader.filename.Length - 1)); } } }