Skip to content

Commit 47f9100

Browse files
apply shared lib to customtensorization and add dependcy
1 parent bc8519f commit 47f9100

File tree

5 files changed

+33
-52
lines changed

5 files changed

+33
-52
lines changed

Samples/CustomTensorization/CustomTensorization.sln

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00
44
VisualStudioVersion = 15.0.27703.2042
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CustomTensorization", "CustomTensorization\CustomTensorization.vcxproj", "{4420ECD4-AD04-4183-9879-7D52039E5422}"
7+
ProjectSection(ProjectDependencies) = postProject
8+
{12103A5B-677A-4286-83D2-54EAB9010C16} = {12103A5B-677A-4286-83D2-54EAB9010C16}
9+
EndProjectSection
10+
EndProject
11+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SampleSharedLib", "..\SampleSharedLib\SampleSharedLib\SampleSharedLib.vcxproj", "{12103A5B-677A-4286-83D2-54EAB9010C16}"
712
EndProject
813
Global
914
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -25,6 +30,16 @@ Global
2530
{4420ECD4-AD04-4183-9879-7D52039E5422}.Release|x64.Build.0 = Release|x64
2631
{4420ECD4-AD04-4183-9879-7D52039E5422}.Release|x86.ActiveCfg = Release|Win32
2732
{4420ECD4-AD04-4183-9879-7D52039E5422}.Release|x86.Build.0 = Release|Win32
33+
{12103A5B-677A-4286-83D2-54EAB9010C16}.Debug|ARM.ActiveCfg = Debug|Win32
34+
{12103A5B-677A-4286-83D2-54EAB9010C16}.Debug|x64.ActiveCfg = Debug|x64
35+
{12103A5B-677A-4286-83D2-54EAB9010C16}.Debug|x64.Build.0 = Debug|x64
36+
{12103A5B-677A-4286-83D2-54EAB9010C16}.Debug|x86.ActiveCfg = Debug|Win32
37+
{12103A5B-677A-4286-83D2-54EAB9010C16}.Debug|x86.Build.0 = Debug|Win32
38+
{12103A5B-677A-4286-83D2-54EAB9010C16}.Release|ARM.ActiveCfg = Release|Win32
39+
{12103A5B-677A-4286-83D2-54EAB9010C16}.Release|x64.ActiveCfg = Release|x64
40+
{12103A5B-677A-4286-83D2-54EAB9010C16}.Release|x64.Build.0 = Release|x64
41+
{12103A5B-677A-4286-83D2-54EAB9010C16}.Release|x86.ActiveCfg = Release|Win32
42+
{12103A5B-677A-4286-83D2-54EAB9010C16}.Release|x86.Build.0 = Release|Win32
2843
EndGlobalSection
2944
GlobalSection(SolutionProperties) = preSolution
3045
HideSolutionNode = FALSE

Samples/CustomTensorization/CustomTensorization/CustomTensorization.vcxproj

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,29 +75,43 @@
7575
<ClCompile>
7676
<Optimization>Disabled</Optimization>
7777
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
78+
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">..\..\SampleSharedLib\SampleSharedLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
79+
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\SampleSharedLib\SampleSharedLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
7880
</ClCompile>
7981
<Link>
8082
<SubSystem>Console</SubSystem>
8183
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
84+
<AdditionalDependencies Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(OutDir)\SampleSharedLib.lib;%(AdditionalDependencies)</AdditionalDependencies>
85+
<AdditionalDependencies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(OutDir)\SampleSharedLib.lib;%(AdditionalDependencies)</AdditionalDependencies>
8286
</Link>
8387
</ItemDefinitionGroup>
8488
<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
8589
<ClCompile>
8690
<PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
91+
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\SampleSharedLib\SampleSharedLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
8792
</ClCompile>
93+
<Link>
94+
<AdditionalDependencies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(OutDir)\SampleSharedLib.lib;%(AdditionalDependencies)</AdditionalDependencies>
95+
</Link>
8896
</ItemDefinitionGroup>
8997
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
9098
<ClCompile>
9199
<Optimization>MaxSpeed</Optimization>
92100
<FunctionLevelLinking>true</FunctionLevelLinking>
93101
<IntrinsicFunctions>true</IntrinsicFunctions>
94102
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
103+
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">..\..\SampleSharedLib\SampleSharedLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
104+
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\SampleSharedLib\SampleSharedLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
105+
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\SampleSharedLib\SampleSharedLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
95106
</ClCompile>
96107
<Link>
97108
<SubSystem>Console</SubSystem>
98109
<EnableCOMDATFolding>true</EnableCOMDATFolding>
99110
<OptimizeReferences>true</OptimizeReferences>
100111
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
112+
<AdditionalDependencies Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(OutDir)\SampleSharedLib.lib;%(AdditionalDependencies)</AdditionalDependencies>
113+
<AdditionalDependencies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(OutDir)\SampleSharedLib.lib;%(AdditionalDependencies)</AdditionalDependencies>
114+
<AdditionalDependencies Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(OutDir)\SampleSharedLib.lib;%(AdditionalDependencies)</AdditionalDependencies>
101115
</Link>
102116
</ItemDefinitionGroup>
103117
<ItemGroup>

Samples/CustomTensorization/CustomTensorization/TensorConvertor.cpp

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,6 @@ EXTERN_C IMAGE_DOS_HEADER __ImageBase;
2020

2121
namespace TensorizationHelper
2222
{
23-
std::wstring GetModulePath()
24-
{
25-
std::wstring val;
26-
wchar_t modulePath[MAX_PATH] = { 0 };
27-
GetModuleFileNameW((HINSTANCE)&__ImageBase, modulePath, _countof(modulePath));
28-
wchar_t drive[_MAX_DRIVE];
29-
wchar_t dir[_MAX_DIR];
30-
wchar_t filename[_MAX_FNAME];
31-
wchar_t ext[_MAX_EXT];
32-
errno_t err = _wsplitpath_s(modulePath, drive, _MAX_DRIVE, dir, _MAX_DIR, filename, _MAX_FNAME, ext, _MAX_EXT);
33-
34-
val = drive;
35-
val += dir;
36-
return val;
37-
}
38-
3923
std::wstring GetFileName()
4024
{
4125
wchar_t modulePath[MAX_PATH] = { 0 };

Samples/CustomTensorization/CustomTensorization/TensorConvertor.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
namespace TensorizationHelper
88
{
9-
std::wstring GetModulePath();
109
std::wstring GetFileName();
1110

1211
winrt::Windows::AI::MachineLearning::TensorFloat SoftwareBitmapToSoftwareTensor(

Samples/CustomTensorization/CustomTensorization/main.cpp

Lines changed: 4 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "pch.h"
22
#include "TensorConvertor.h"
3+
#include "FileHelper.h"
34
using namespace winrt;
45
using namespace Windows::Foundation;
56
using namespace Windows::AI::MachineLearning;
@@ -18,11 +19,10 @@ LearningModel model = nullptr;
1819
LearningModelSession session = nullptr;
1920
LearningModelBinding binding = nullptr;
2021

21-
const wstring modulePath{ TensorizationHelper::GetModulePath() };
22+
const wstring modulePath{ FileHelper::GetModulePath() };
2223

2324
// Forward declarations
2425
void LoadModel(hstring modelPath);
25-
VideoFrame LoadImageFile(hstring filePath);
2626
void BindModel(
2727
VideoFrame imageFrame,
2828
string deviceName = "default");
@@ -41,15 +41,15 @@ int main()
4141
// Mannually-tensorization from CPU
4242
printf("Mannually-tensorization from CPU\n");
4343
LoadModel(modelPath);
44-
VideoFrame imageFrame = LoadImageFile(imagePath);
44+
VideoFrame imageFrame = FileHelper::LoadImageFile(imagePath);
4545
BindModel(imageFrame, "CPU");
4646
ImageFeatureValue output = EvaluateModel();
4747
SaveOutputToDisk(output, L"output_cpu.png");
4848

4949
// Mannually-tensorization from GPU
5050
printf("\n\nMannually-tensorization from GPU\n");
5151
LoadModel(modelPath);
52-
imageFrame = LoadImageFile(imagePath);
52+
imageFrame = FileHelper::LoadImageFile(imagePath);
5353
BindModel(imageFrame, "GPU");
5454
output = EvaluateModel();
5555
SaveOutputToDisk(output, L"output_gpu.png");
@@ -73,37 +73,6 @@ void LoadModel(hstring modelPath)
7373
printf("model file loaded in %d ticks\n", ticks);
7474
}
7575

76-
VideoFrame LoadImageFile(hstring filePath)
77-
{
78-
printf("Loading the image...\n");
79-
DWORD ticks = GetTickCount();
80-
VideoFrame inputImage = nullptr;
81-
82-
try
83-
{
84-
// open the file
85-
StorageFile file = StorageFile::GetFileFromPathAsync(filePath).get();
86-
// get a stream on it
87-
auto stream = file.OpenAsync(FileAccessMode::Read).get();
88-
// Create the decoder from the stream
89-
BitmapDecoder decoder = BitmapDecoder::CreateAsync(stream).get();
90-
// get the bitmap
91-
SoftwareBitmap softwareBitmap = decoder.GetSoftwareBitmapAsync().get();
92-
// load a videoframe from it
93-
inputImage = VideoFrame::CreateWithSoftwareBitmap(softwareBitmap);
94-
}
95-
catch (...)
96-
{
97-
printf("failed to load the image file, make sure you are using fully qualified paths\r\n");
98-
exit(EXIT_FAILURE);
99-
}
100-
101-
ticks = GetTickCount() - ticks;
102-
printf("image file loaded in %d ticks\n", ticks);
103-
// all done
104-
return inputImage;
105-
}
106-
10776
void BindModel(
10877
VideoFrame imageFrame,
10978
string deviceName)

0 commit comments

Comments
 (0)