You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

Compress.cs 2.1 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using ICSharpCode.SharpZipLib.GZip;
  2. using ICSharpCode.SharpZipLib.Tar;
  3. using System;
  4. using System.IO;
  5. using System.IO.Compression;
  6. using System.Linq;
  7. using System.Threading;
  8. using System.Threading.Tasks;
  9. namespace TensorFlowNET.Examples.Utility
  10. {
  11. public class Compress
  12. {
  13. public static void UnZip(String gzArchiveName, String destFolder)
  14. {
  15. var flag = gzArchiveName.Split(Path.DirectorySeparatorChar).Last().Split('.').First() + ".bin";
  16. if (File.Exists(Path.Combine(destFolder, flag))) return;
  17. Console.WriteLine($"Extracting.");
  18. var task = Task.Run(() =>
  19. {
  20. ZipFile.ExtractToDirectory(gzArchiveName, destFolder);
  21. });
  22. while (!task.IsCompleted)
  23. {
  24. Thread.Sleep(200);
  25. Console.Write(".");
  26. }
  27. File.Create(Path.Combine(destFolder, flag));
  28. Console.WriteLine("");
  29. Console.WriteLine("Extracting is completed.");
  30. }
  31. public static void ExtractTGZ(String gzArchiveName, String destFolder)
  32. {
  33. var flag = gzArchiveName.Split(Path.DirectorySeparatorChar).Last().Split('.').First() + ".bin";
  34. if (File.Exists(Path.Combine(destFolder, flag))) return;
  35. Console.WriteLine($"Extracting.");
  36. var task = Task.Run(() =>
  37. {
  38. using (var inStream = File.OpenRead(gzArchiveName))
  39. {
  40. using (var gzipStream = new GZipInputStream(inStream))
  41. {
  42. using (TarArchive tarArchive = TarArchive.CreateInputTarArchive(gzipStream))
  43. tarArchive.ExtractContents(destFolder);
  44. }
  45. }
  46. });
  47. while (!task.IsCompleted)
  48. {
  49. Thread.Sleep(200);
  50. Console.Write(".");
  51. }
  52. File.Create(Path.Combine(destFolder, flag));
  53. Console.WriteLine("");
  54. Console.WriteLine("Extracting is completed.");
  55. }
  56. }
  57. }

tensorflow框架的.NET版本,提供了丰富的特性和API,可以借此很方便地在.NET平台下搭建深度学习训练与推理流程。