我正在创建一个脚本,试图在其中存储和恢复一些内部数组的对象。 但是无法使其正常工作。 另外,我不确定是否在正确的轨道上,或者有更好的方法可以做到这一点。 此时,我正在尝试将完整的对象分成几部分保存。
神经元网络内部具有信息和矩阵,这些矩阵内部具有2D数组。
是否可以一次性存储所有内容,这会使我变得复杂吗?
我已经尝试过类似的事情:
$this | Export-CSV -Path $Path1
$this.matrix1 | Export-CSV -Path $Path2
$this.matrix1.data | % { $_ -join ','} | out-file $Path3
但这并不能获取我需要存储的所有数据 (espacialy $ this.matrix1.data中的数组) 有人知道我在做什么错还是知道更好的方法? 如果是这样,我如何将其重新存入$ nn2?
class Matrix {
[int]$some_info11
[int]$some_info21
[int]$some_info31
$data
Matrix($int){
$this.some_info11 = 1
$this.some_info21 = 12
$this.some_info31 = 123
$row = 4
$col = 12
$temp_array = New-Object 'object[,]' $row , $col
for ($i=0;$i -le $row -1 ; $i++) {
for ($j=0;$j -le $col -1 ; $j++) {
$temp_array[$i,$j] = Get-Random -Maximum 1.0 -Minimum -1.0
}
}
$this.data = $temp_array
}
}
class NeurolNetwork{
$matrix1
[int]$some_info1
[int]$some_info2
[int]$some_info3
NeurolNetwork($inp){
$this.some_info1 = 1
$this.some_info2 = 12
$this.some_info3 = 123
$this.matrix1 = [Matrix]::New($inp)
}
export([string]$dir){
$Path1 = "C:\test\" + $dir + "\nn.txt"
$Path2 = "C:\test\" + $dir + "\nn_matrix.csv"
$Path3 = "C:\test\" + $dir + "\nn_matrix_data.csv"
$this | Export-CSV -Path $Path1
$this.matrix1 | Export-CSV -Path $Path2
$this.matrix1.data | % { $_ -join ','} | out-file $Path3
}
}
Function get_nn([string]$dir){
# get files from directory and create a new [NeurolNetwork]
}
$nn1 = [NeurolNetwork]::New(12)
$nn1.export("temp_dir")
$nn2 = get_nn("temp_dir")
答案 0 :(得分:0)
您似乎要尝试将所有内容保存为CSV。
CSV不适用于多维数组,因为CSV基于列/行。
导出到json可能更好
$this | ConvertTo-Json | out-file -FilePath C:\TEST.json
输出
{
"matrix1": {
"some_info11": 1,
"some_info21": 12,
"some_info31": 123,
"data": [
0.53464436509397073,
-0.21887814962252894,
-0.999366649426225,
0.590662602144602,
ALot more rows like this...
]
},
"some_info1": 1,
"some_info2": 12,
"some_info3": 123
}
如果您想将此信息放回文件中,就可以使用。
$Obj = Get-Content -Path C:\Test.json | ConvertFrom-Json