@@ -10,7 +10,8 @@ class Program
10
10
{
11
11
static void Main ( string [ ] args )
12
12
{
13
- var assetsPath = @"D:\NsfwSpy\Images" ;
13
+ var assetsPath = @"E:\NsfwSpy\Images" ;
14
+ var testImagesPath = @"E:\NsfwSpy\Test" ;
14
15
15
16
var classificationTypes = new [ ]
16
17
{
@@ -25,15 +26,34 @@ static void Main(string[] args)
25
26
26
27
foreach ( var classificationType in classificationTypes )
27
28
{
28
- var directory = Path . Combine ( assetsPath , classificationType ) ;
29
- var files = Directory . GetFiles ( directory ) . OrderBy ( f => Guid . NewGuid ( ) ) . ToList ( ) ;
29
+ var testFilesDirectory = Path . Combine ( testImagesPath , classificationType ) ;
30
+ var testFiles = Directory . Exists ( testFilesDirectory ) ? Directory . GetFiles ( testFilesDirectory ) . ToList ( ) : new List < string > ( ) ;
30
31
31
- var length = files . Count > 10000 ? 10000 : files . Count ;
32
- files = files . Take ( length ) . ToList ( ) ;
32
+ if ( ! testFiles . Any ( ) )
33
+ {
34
+ var directory = Path . Combine ( assetsPath , classificationType ) ;
35
+ var files = Directory . GetFiles ( directory ) . OrderBy ( f => Guid . NewGuid ( ) ) . ToList ( ) ;
36
+
37
+ var length = files . Count > 10000 ? 10000 : files . Count ;
38
+ files = files . Take ( length ) . ToList ( ) ;
39
+
40
+ Console . WriteLine ( $ "Copying { classificationType } test files...") ;
41
+
42
+ if ( ! Directory . Exists ( testFilesDirectory ) )
43
+ Directory . CreateDirectory ( testFilesDirectory ) ;
44
+
45
+ Parallel . ForEach ( files , file => {
46
+ var filename = Path . GetFileName ( file ) ;
47
+ var dest = Path . Combine ( testFilesDirectory , filename ) ;
48
+ File . Copy ( file , dest ) ;
49
+ } ) ;
50
+
51
+ testFiles = Directory . GetFiles ( testFilesDirectory ) . ToList ( ) ;
52
+ }
33
53
34
54
var pr = new PerformanceResult ( classificationType ) ;
35
55
36
- nsfwSpy . ClassifyImages ( files , ( filePath , result ) =>
56
+ nsfwSpy . ClassifyImages ( testFiles , ( filePath , result ) =>
37
57
{
38
58
pr . Results . Add ( result ) ;
39
59
Console . WriteLine ( $ "{ pr . Key } | Correct Asserts: { pr . CorrectAsserts } / { pr . TotalAsserts } ({ ( Convert . ToDouble ( pr . CorrectAsserts ) / pr . TotalAsserts ) * 100 } %) | IsNsfw: { pr . NsfwAsserts } / { pr . TotalAsserts } ({ ( Convert . ToDouble ( pr . NsfwAsserts ) / pr . TotalAsserts ) * 100 } %)") ;
0 commit comments