Closed antoinecarme closed 1 year ago
Hardware info
antoine@pyafriscv:~/dev/python/packages/timeseries/pyaf$ cat /etc/debian_version
bookworm/sid
antoine@pyafriscv:~$ cat /proc/cpuinfo
processor : 0
hart : 1
isa : rv64imafdc
mmu : sv39
uarch : sifive,u74-mc
processor : 1
hart : 2
isa : rv64imafdc
mmu : sv39
uarch : sifive,u74-mc
processor : 2
hart : 3
isa : rv64imafdc
mmu : sv39
uarch : sifive,u74-mc
processor : 3
hart : 4
isa : rv64imafdc
mmu : sv39
uarch : sifive,u74-mc
Memory
antoine@pyafriscv:~$ free
total used free shared buff/cache available
Mem: 8118100 203444 7855340 3172 139944 7914656
Swap: 0 0 0
dmesg
[ 0.000000] Linux version 5.15.0-starfive (sw_buildbot@mdcsw02) (riscv64-unknown-linux-gnu-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35) #1 SMP Wed Dec 21 0
3:56:12 EST 2022
[ 0.000000] OF: fdt: Ignoring memory range 0x40000000 - 0x40200000
[ 0.000000] Machine model: StarFive VisionFive V2
[ 0.000000] earlycon: uart0 at MMIO32 0x0000000010000000 (options '115200')
[ 0.000000] printk: bootconsole [uart0] enabled
[ 0.000000] efi: UEFI not found.
[ 0.000000] Reserved memory: created CMA memory pool at 0x0000000080000000, size 512 MiB
[ 0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[ 0.000000] Zone ranges:
[ 0.000000] DMA32 [mem 0x0000000040200000-0x00000000ffffffff]
[ 0.000000] Normal [mem 0x0000000100000000-0x000000023fffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000040200000-0x00000000c010ffff]
[ 0.000000] node 0: [mem 0x00000000c0110000-0x00000000c01fffff]
[ 0.000000] node 0: [mem 0x00000000c0200000-0x000000023fffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000040200000-0x000000023fffffff]
[ 0.000000] SBI specification v0.3 detected
[ 0.000000] SBI implementation ID=0x1 Version=0x10000
[ 0.000000] SBI TIME extension detected
[ 0.000000] SBI IPI extension detected
[ 0.000000] SBI RFENCE extension detected
[ 0.000000] SBI v0.2 HSM extension detected
[ 0.000000] CPU with hartid=0 is not available
[ 0.000000] CPU with hartid=0 is not available
[ 0.000000] riscv: ISA extensions acdfim
[ 0.000000] riscv: ELF capabilities acdfim
[ 0.000000] percpu: Embedded 17 pages/cpu s31528 r8192 d29912 u69632
[ 0.000000] pcpu-alloc: s31528 r8192 d29912 u69632 alloc=17*4096
[ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 2067975
[ 0.000000] Kernel command line: root=/dev/mmcblk1p3 root=/dev/mmcblk1p3 rw console=tty0 console=ttyS0,115200 earlycon rootwait stmmaceth=chain_mode:1 selin
ux=0
[ 0.000000] Unknown command line parameters: stmmaceth=chain_mode:1 selinux=0
[ 0.000000] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] software IO TLB: mapped [mem 0x00000000fbfff000-0x00000000fffff000] (64MB)
[ 0.000000] Memory: 7582168K/8386560K available (9884K kernel code, 4982K rwdata, 4096K rodata, 2191K init, 401K bss, 280104K reserved, 524288K cma-reserved
)
No error when running pyaf build tests
antoine@pyafriscv:~/dev/python/packages/timeseries/pyaf$ make -f tests/Makefile -j 4 build-test &> log.build &
antoine@pyafriscv:~/dev/python/packages/timeseries/pyaf$ grep Error log.build
timeout 480 python3 tests/basic_checks/test_temporal_demo_hourly_D_H_ErrorMessage_3.py > logs/basic_checks_test_temporal_demo_hourly_D_H_ErrorMessage_3.log 2>&1
timeout 480 python3 tests/basic_checks/test_temporal_demo_hourly_D_H_ErrorMessage_2.py > logs/basic_checks_test_temporal_demo_hourly_D_H_ErrorMessage_2.log 2>&1
timeout 480 python3 tests/basic_checks/test_temporal_demo_hourly_D_H_ErrorMessage.py > logs/basic_checks_test_temporal_demo_hourly_D_H_ErrorMessage.log 2>&1
timeout 480 python3 scripts/num_diff.py tests/references/basic_checks/test_temporal_demo_hourly_D_H_ErrorMessage_2.log logs/basic_checks_test_temporal_demo_hourly_D_H_ErrorMessage_2.log > logs/basic_checks_test_temporal_demo_hourly_D_H_ErrorMessage_2.log.diff
timeout 480 python3 scripts/num_diff.py tests/references/basic_checks/test_temporal_demo_hourly_D_H_ErrorMessage_3.log logs/basic_checks_test_temporal_demo_hourly_D_H_ErrorMessage_3.log > logs/basic_checks_test_temporal_demo_hourly_D_H_ErrorMessage_3.log.diff
timeout 480 python3 scripts/num_diff.py tests/references/basic_checks/test_temporal_demo_hourly_D_H_ErrorMessage.log logs/basic_checks_test_temporal_demo_hourly_D_H_ErrorMessage.log > logs/basic_checks_test_temporal_demo_hourly_D_H_ErrorMessage.log.diff
tail -10 logs/basic_checks_test_temporal_demo_hourly_D_H_ErrorMessage_2.log.diff
tail -10 logs/basic_checks_test_temporal_demo_hourly_D_H_ErrorMessage.log.diff
tail -10 logs/basic_checks_test_temporal_demo_hourly_D_H_ErrorMessage_3.log.diff
Pytorch debian packages for riscv are buggy for the moment.
Update : Pytorch is now working. See below
lshw
root@pyafriscv:~# lshw
pyafriscv
description: Computer
product: StarFive VisionFive V2
serial: VF7110A1-2247-D008E000-00000216
width: 64 bits
capabilities: smp
*-core
description: Motherboard
physical id: 0
*-cpu:0
description: CPU
product: cpu
physical id: 1
bus info: cpu@0
size: 1500MHz
capacity: 1500MHz
width: 32 bits
capabilities: cpufreq
*-cache
description: L1 Cache
physical id: 0
size: 8KiB
*-cpu:1
description: CPU
product: cpu
physical id: 2
bus info: cpu@1
size: 1500MHz
capacity: 1500MHz
width: 32 bits
capabilities: cpufreq
*-cache
description: L1 Cache
physical id: 0
size: 32KiB
*-cpu:2
description: CPU
product: cpu
physical id: 3
bus info: cpu@2
size: 1500MHz
capacity: 1500MHz
width: 32 bits
capabilities: cpufreq
*-cache
description: L1 Cache
physical id: 0
size: 32KiB
*-cpu:3
description: CPU
product: cpu
physical id: 4
bus info: cpu@3
size: 1500MHz
capacity: 1500MHz
width: 32 bits
capabilities: cpufreq
*-cache
description: L1 Cache
physical id: 0
size: 32KiB
*-cpu:4 DISABLED
description: CPU
product: cpu
physical id: 5
bus info: cpu@4
*-cache
description: L1 Cache
physical id: 0
size: 32KiB
*-memory
description: System memory
physical id: 6
size: 7927MiB
*-pci
description: PCI bridge
product: XpressRich-AXI Ref Design
vendor: PLDA
physical id: 0
bus info: pci@0000:00:00.0
version: 02
width: 64 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
resources: memory:30000000-300fffff
Pytorch debian packages : some dependencies are failing. workaround OK.
root@pyafriscv:~# dpkg -i --ignore-depends=python3 python3-skorch_0.9.0-3_all.deb python3-torch_1.12.1-1+b1_riscv64.deb
(Reading database ... 160617 files and directories currently installed.)
Preparing to unpack python3-skorch_0.9.0-3_all.deb ...
Unpacking python3-skorch (0.9.0-3) over (0.9.0-3) ...
Preparing to unpack python3-torch_1.12.1-1+b1_riscv64.deb ...
Unpacking python3-torch (1.12.1-1+b1) over (1.12.1-1+b1) ...
Setting up python3-torch (1.12.1-1+b1) ...
Setting up python3-skorch (0.9.0-3) ...
Sample pytorch test script
antoine@pyafriscv:~/dev/python/packages/timeseries/pyaf$ python3 tests/pytorch/test_ozone_exogenous_MLPX_pytorch.py
BUILD_PYTORCH_OR_KERAS_MODEL ('MLP', ('PyTorch',))
Date Exog2 Exog3 Exog4 Ozone Time
0 1955-01 1 AQ P_R 2.7 1955-01-01
1 1955-02 2 AR P_R 2.0 1955-02-01
2 1955-03 3 AS P_S 3.6 1955-03-01
3 1955-04 4 AT P_U 5.0 1955-04-01
4 1955-05 5 AU P_V 6.5 1955-05-01
/home/antoine/dev/python/packages/timeseries/pyaf/tests/pytorch/test_ozone_exogenous_gen.py:18: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
df[lSignal] = df[b1.mSignalVar]
INFO:pyaf.timing:('OPERATION_START', ('SIGNAL_TRAINING', {'Signals': ['Ozone_MLP_PyTorch'], 'Transformations': [('Ozone_MLP_PyTorch', 'None', '_', 'T+S+R'), ('Ozone_MLP_PyTorch', 'None', 'Diff_', 'T+S+R'), ('Ozone_MLP_PyTorch', 'None', 'RelDiff_', 'T+S+R'), ('Ozone_MLP_PyTorch', 'None', 'CumSum_', 'T+S+R')], 'Cores': 4}))
INFO:pyaf.timing:('OPERATION_START', ('TRAINING', {'Signal': 'Ozone_MLP_PyTorch', 'Transformation': '_Ozone_MLP_PyTorch'}))
INFO:pyaf.timing:('OPERATION_START', ('TRAINING', {'Signal': 'Ozone_MLP_PyTorch', 'Transformation': 'Diff_Ozone_MLP_PyTorch'}))
INFO:pyaf.timing:('OPERATION_START', ('TRAINING', {'Signal': 'Ozone_MLP_PyTorch', 'Transformation': 'RelDiff_Ozone_MLP_PyTorch'}))
INFO:pyaf.timing:('OPERATION_START', ('TRAINING', {'Signal': 'Ozone_MLP_PyTorch', 'Transformation': 'CumSum_Ozone_MLP_PyTorch'}))
Error in cpuinfo: processor architecture is not supported in cpuinfo
Error in cpuinfo: processor architecture is not supported in cpuinfo
Error in cpuinfo: processor architecture is not supported in cpuinfo
Error in cpuinfo: processor architecture is not supported in cpuinfo
/usr/lib/python3/dist-packages/_distutils_hack/__init__.py:33: UserWarning: Setuptools is replacing distutils.
warnings.warn("Setuptools is replacing distutils.")
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 37.613, ('TRAINING', {'Signal': 'Ozone_MLP_PyTorch', 'Transformation': 'CumSum_Ozone_MLP_PyTorch'}))
/usr/lib/python3/dist-packages/_distutils_hack/__init__.py:33: UserWarning: Setuptools is replacing distutils.
warnings.warn("Setuptools is replacing distutils.")
/usr/lib/python3/dist-packages/_distutils_hack/__init__.py:33: UserWarning: Setuptools is replacing distutils.
warnings.warn("Setuptools is replacing distutils.")
/usr/lib/python3/dist-packages/_distutils_hack/__init__.py:33: UserWarning: Setuptools is replacing distutils.
warnings.warn("Setuptools is replacing distutils.")
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 40.86, ('TRAINING', {'Signal': 'Ozone_MLP_PyTorch', 'Transformation': '_Ozone_MLP_PyTorch'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 42.627, ('TRAINING', {'Signal': 'Ozone_MLP_PyTorch', 'Transformation': 'RelDiff_Ozone_MLP_PyTorch'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 43.642, ('TRAINING', {'Signal': 'Ozone_MLP_PyTorch', 'Transformation': 'Diff_Ozone_MLP_PyTorch'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 75.981, ('SIGNAL_TRAINING', {'Signals': ['Ozone_MLP_PyTorch'], 'Transformations': [('Ozone_MLP_PyTorch', 'None', '_', 'T+S+R'), ('Ozone_MLP_PyTorch', 'None', 'Diff_', 'T+S+R'), ('Ozone_MLP_PyTorch', 'None', 'RelDiff_', 'T+S+R'), ('Ozone_MLP_PyTorch', 'None', 'CumSum_', 'T+S+R')], 'Cores': 4}))
INFO:pyaf.timing:('OPERATION_START', ('FINALIZE_TRAINING', {'Signals': ['Ozone_MLP_PyTorch'], 'Transformations': [('Ozone_MLP_PyTorch', [('Ozone_MLP_PyTorch', 'None', 'CumSum_', 'T+S+R'), ('Ozone_MLP_PyTorch', 'None', 'Diff_', 'T+S+R'), ('Ozone_MLP_PyTorch', 'None', 'RelDiff_', 'T+S+R'), ('Ozone_MLP_PyTorch', 'None', '_', 'T+S+R')])], 'Cores': 1}))
INFO:pyaf.timing:('OPERATION_START', ('MODEL_SELECTION', {'Signal': 'Ozone_MLP_PyTorch', 'Transformations': [('Ozone_MLP_PyTorch', 'None', 'CumSum_', 'T+S+R'), ('Ozone_MLP_PyTorch', 'None', 'Diff_', 'T+S+R'), ('Ozone_MLP_PyTorch', 'None', 'RelDiff_', 'T+S+R'), ('Ozone_MLP_PyTorch', 'None', '_', 'T+S+R')]}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 0.023, ('MODEL_SELECTION', {'Signal': 'Ozone_MLP_PyTorch', 'Transformations': [('Ozone_MLP_PyTorch', 'None', 'CumSum_', 'T+S+R'), ('Ozone_MLP_PyTorch', 'None', 'Diff_', 'T+S+R'), ('Ozone_MLP_PyTorch', 'None', 'RelDiff_', 'T+S+R'), ('Ozone_MLP_PyTorch', 'None', '_', 'T+S+R')]}))
INFO:pyaf.timing:('OPERATION_START', ('UPDATE_BEST_MODEL_PERFS', {'Signal': 'Ozone_MLP_PyTorch', 'Model': '_Ozone_MLP_PyTorch_LinearTrend_residue_bestCycle_byMAPE_residue_MLP(51)'}))
Error in cpuinfo: processor architecture is not supported in cpuinfo
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 0.171, ('UPDATE_BEST_MODEL_PERFS', {'Signal': 'Ozone_MLP_PyTorch', 'Model': '_Ozone_MLP_PyTorch_LinearTrend_residue_bestCycle_byMAPE_residue_MLP(51)'}))
INFO:pyaf.timing:('OPERATION_START', ('COMPUTE_PREDICTION_INTERVALS', {'Signal': 'Ozone_MLP_PyTorch'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 1.887, ('COMPUTE_PREDICTION_INTERVALS', {'Signal': 'Ozone_MLP_PyTorch'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 2.083, ('FINALIZE_TRAINING', {'Signals': ['Ozone_MLP_PyTorch'], 'Transformations': [('Ozone_MLP_PyTorch', [('Ozone_MLP_PyTorch', 'None', 'CumSum_', 'T+S+R'), ('Ozone_MLP_PyTorch', 'None', 'Diff_', 'T+S+R'), ('Ozone_MLP_PyTorch', 'None', 'RelDiff_', 'T+S+R'), ('Ozone_MLP_PyTorch', 'None', '_', 'T+S+R')])], 'Cores': 1}))
INFO:pyaf.std:TIME_DETAIL TimeVariable='Time' TimeMin=1955-01-01T00:00:00.000000 TimeMax=1967-09-01T00:00:00.000000 TimeDelta=<DateOffset: months=1> Horizon=12
INFO:pyaf.std:SIGNAL_DETAIL_ORIG SignalVariable='Ozone_MLP_PyTorch' Length=204 Min=1.2 Max=8.7 Mean=3.835784 StdDev=1.491559
INFO:pyaf.std:SIGNAL_DETAIL_TRANSFORMED TransformedSignalVariable='_Ozone_MLP_PyTorch' Min=0.0 Max=1.0 Mean=0.351438 StdDev=0.198875
INFO:pyaf.std:DECOMPOSITION_TYPE 'T+S+R'
INFO:pyaf.std:BEST_TRANSOFORMATION_TYPE '_'
INFO:pyaf.std:BEST_DECOMPOSITION '_Ozone_MLP_PyTorch_LinearTrend_residue_bestCycle_byMAPE_residue_MLP(51)' [LinearTrend + Cycle_None + MLP(51)]
INFO:pyaf.std:TREND_DETAIL '_Ozone_MLP_PyTorch_LinearTrend' [LinearTrend]
INFO:pyaf.std:CYCLE_DETAIL '_Ozone_MLP_PyTorch_LinearTrend_residue_bestCycle_byMAPE' [Cycle_None]
INFO:pyaf.std:AUTOREG_DETAIL '_Ozone_MLP_PyTorch_LinearTrend_residue_bestCycle_byMAPE_residue_MLP(51)' [MLP(51)]
INFO:pyaf.std:MODEL_MAPE MAPE_Fit=0.1993 MAPE_Forecast=0.1773 MAPE_Test=0.1195
INFO:pyaf.std:MODEL_SMAPE SMAPE_Fit=0.1873 SMAPE_Forecast=0.1952 SMAPE_Test=0.1213
INFO:pyaf.std:MODEL_MASE MASE_Fit=0.8579 MASE_Forecast=0.7459 MASE_Test=0.5919
INFO:pyaf.std:MODEL_CRPS CRPS_Fit=0.3031 CRPS_Forecast=0.275 CRPS_Test=0.2646
INFO:pyaf.std:MODEL_L1 L1_Fit=0.754 L1_Forecast=0.5791 L1_Test=0.2798
INFO:pyaf.std:MODEL_L2 L2_Fit=1.0038 L2_Forecast=0.7291 L2_Test=0.332
INFO:pyaf.std:MODEL_LnQ LnQ_Fit=8.9229 LnQ_Forecast=2.1536 LnQ_Test=0.2502
INFO:pyaf.std:MODEL_MEDIAN_AE MedAE_Fit=0.563 MedAE_Forecast=0.5528 MedAE_Test=0.323
INFO:pyaf.std:MODEL_KENDALL_TAU KENDALL_TAU_Fit=0.57 KENDALL_TAU_Forecast=0.689 KENDALL_TAU_Test=0.7786
INFO:pyaf.std:MODEL_KOLOMOGOROV_SMIRNOV KS_Fit=0.1373 KS_Forecast=0.2051 KS_Test=0.1667
INFO:pyaf.std:MODEL_MANN_WHITNEY_U MWU_Fit=11452.0 MWU_Forecast=904.0 MWU_Test=72.0
INFO:pyaf.std:MODEL_AUC AUC_Fit=0.4892 AUC_Forecast=0.5943 AUC_Test=0.5
INFO:pyaf.std:MODEL_COMPLEXITY 52.0
INFO:pyaf.std:SIGNAL_TRANSFORMATION_DETAIL_START
INFO:pyaf.std:SIGNAL_TRANSFORMATION_MODEL_VALUES NoTransf None
INFO:pyaf.std:SIGNAL_TRANSFORMATION_DETAIL_END
INFO:pyaf.std:TREND_DETAIL_START
INFO:pyaf.std:LINEAR_RIDGE_TREND LinearTrend (0.509677, array([-0.243617]))
INFO:pyaf.std:TREND_DETAIL_END
INFO:pyaf.std:CYCLE_MODEL_DETAIL_START
INFO:pyaf.std:BEST_CYCLE_LENGTH_VALUES _Ozone_MLP_PyTorch_LinearTrend_residue_bestCycle_byMAPE None 0.001729 {}
INFO:pyaf.std:CYCLE_MODEL_DETAIL_END
INFO:pyaf.std:AR_MODEL_DETAIL_START
INFO:pyaf.std:MODEL_TYPE PYTORCH
INFO:pyaf.std:PYTORCH_MODEL_ARCHITECTURE [Sequential(
(0): Linear(in_features=51, out_features=51, bias=True)
(1): Dropout(p=0.5, inplace=False)
(2): Linear(in_features=51, out_features=1, bias=True)
)]
INFO:pyaf.std:AR_MODEL_DETAIL_END
INFO:pyaf.timing:('OPERATION_START', ('PLOTTING', {'Signals': ['Ozone_MLP_PyTorch']}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 21.87, ('PLOTTING', {'Signals': ['Ozone_MLP_PyTorch']}))
INFO:pyaf.timing:('OPERATION_START', ('FORECASTING', {'Signals': ['Ozone_MLP_PyTorch'], 'Horizon': 12}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 1.294, ('FORECASTING', {'Signals': ['Ozone_MLP_PyTorch'], 'Horizon': 12}))
Forecast Columns Index(['Time', 'Ozone_MLP_PyTorch', 'row_number', 'Time_Normalized',
'_Ozone_MLP_PyTorch', '_Ozone_MLP_PyTorch_LinearTrend',
'_Ozone_MLP_PyTorch_LinearTrend_residue',
'_Ozone_MLP_PyTorch_LinearTrend_residue_bestCycle_byMAPE',
'_Ozone_MLP_PyTorch_LinearTrend_residue_bestCycle_byMAPE_residue',
'_Ozone_MLP_PyTorch_LinearTrend_residue_bestCycle_byMAPE_residue_MLP(51)',
'_Ozone_MLP_PyTorch_LinearTrend_residue_bestCycle_byMAPE_residue_MLP(51)_residue',
'_Ozone_MLP_PyTorch_Trend', '_Ozone_MLP_PyTorch_Trend_residue',
'_Ozone_MLP_PyTorch_Cycle', '_Ozone_MLP_PyTorch_Cycle_residue',
'_Ozone_MLP_PyTorch_AR', '_Ozone_MLP_PyTorch_AR_residue',
'_Ozone_MLP_PyTorch_TransformedForecast', 'Ozone_MLP_PyTorch_Forecast',
'_Ozone_MLP_PyTorch_TransformedResidue', 'Ozone_MLP_PyTorch_Residue',
'Ozone_MLP_PyTorch_Forecast_Lower_Bound',
'Ozone_MLP_PyTorch_Forecast_Upper_Bound',
'Ozone_MLP_PyTorch_Forecast_Quantile_2',
'Ozone_MLP_PyTorch_Forecast_Quantile_18',
'Ozone_MLP_PyTorch_Forecast_Quantile_34',
'Ozone_MLP_PyTorch_Forecast_Quantile_50',
'Ozone_MLP_PyTorch_Forecast_Quantile_66',
'Ozone_MLP_PyTorch_Forecast_Quantile_82',
'Ozone_MLP_PyTorch_Forecast_Quantile_98'],
dtype='object')
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 216 entries, 0 to 215
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Time 216 non-null datetime64[ns]
1 Ozone_MLP_PyTorch 204 non-null float64
2 Ozone_MLP_PyTorch_Forecast 216 non-null float64
dtypes: datetime64[ns](1), float64(2)
memory usage: 5.2 KB
None
Forecasts
[[Timestamp('1972-01-01 00:00:00') nan 1.2916813451499498]
[Timestamp('1972-02-01 00:00:00') nan 1.3036175143260458]
[Timestamp('1972-03-01 00:00:00') nan 2.0932444300494533]
[Timestamp('1972-04-01 00:00:00') nan 2.3220307719538495]
[Timestamp('1972-05-01 00:00:00') nan 2.8684464710553965]
[Timestamp('1972-06-01 00:00:00') nan 3.068573912549856]
[Timestamp('1972-07-01 00:00:00') nan 3.4476306376565518]
[Timestamp('1972-08-01 00:00:00') nan 3.354936068335868]
[Timestamp('1972-09-01 00:00:00') nan 2.9885381622994855]
[Timestamp('1972-10-01 00:00:00') nan 1.9906627171641105]
[Timestamp('1972-11-01 00:00:00') nan 1.5361829669767078]
[Timestamp('1972-12-01 00:00:00') nan 1.3309359367702456]]
<ModelInfo>
{
"Ozone_MLP_PyTorch": {
"Dataset": {
"Signal": "Ozone_MLP_PyTorch",
"Time": {
"Horizon": 12,
"TimeMinMax": [
"1955-01-01 00:00:00",
"1971-12-01 00:00:00"
],
"TimeVariable": "Time"
},
"Training_Signal_Length": 204
},
"Model": {
"AR_Model": "MLP(51)",
"Best_Decomposition": "_Ozone_MLP_PyTorch_LinearTrend_residue_bestCycle_byMAPE_residue_MLP(51)",
"Cycle": "Cycle_None",
"Signal_Decomposition_Type": "T+S+R",
"Signal_Transoformation": "NoTransf",
"Trend": "LinearTrend"
},
"Model_Performance": {
"AUC": 0.5943,
"COMPLEXITY": 52.0,
"CRPS": 0.275,
"KS": 0.2051,
"KendallTau": 0.689,
"LnQ": 2.1536,
"MAE": 0.5791,
"MAPE": 0.1773,
"MASE": 0.7459,
"MannWhitneyU": 904.0,
"MedAE": 0.5528,
"RMSE": 0.7291
}
}
}
</ModelInfo>
<Forecast>
{"Time":{"192":"1971-01-01T00:00:00.000Z","193":"1971-02-01T00:00:00.000Z","194":"1971-03-01T00:00:00.000Z","195":"1971-04-01T00:00:00.000Z","196":"1971-05-01T00:00:00.000Z","197":"1971-06-01T00:00:00.000Z","198":"1971-07-01T00:00:00.000Z","199":"1971-08-01T00:00:00.000Z","200":"1971-09-01T00:00:00.000Z","201":"1971-10-01T00:00:00.000Z","202":"1971-11-01T00:00:00.000Z","203":"1971-12-01T00:00:00.000Z","204":"1972-01-01T00:00:00.000Z","205":"1972-02-01T00:00:00.000Z","206":"1972-03-01T00:00:00.000Z","207":"1972-04-01T00:00:00.000Z","208":"1972-05-01T00:00:00.000Z","209":"1972-06-01T00:00:00.000Z","210":"1972-07-01T00:00:00.000Z","211":"1972-08-01T00:00:00.000Z","212":"1972-09-01T00:00:00.000Z","213":"1972-10-01T00:00:00.000Z","214":"1972-11-01T00:00:00.000Z","215":"1972-12-01T00:00:00.000Z"},"Ozone_MLP_PyTorch":{"192":1.8,"193":2.0,"194":2.2,"195":3.0,"196":2.4,"197":3.5,"198":3.5,"199":3.3,"200":2.7,"201":2.5,"202":1.6,"203":1.2,"204":null,"205":null,"206":null,"207":null,"208":null,"209":null,"210":null,"211":null,"212":null,"213":null,"214":null,"215":null},"Ozone_MLP_PyTorch_Forecast":{"192":1.4318199152,"193":1.5857563647,"194":2.1459375522,"195":2.3934606329,"196":2.817499917,"197":3.4724813225,"198":3.8823147756,"199":3.7172879582,"200":2.9777292876,"201":2.5154260858,"202":1.8127896079,"203":1.3639080892,"204":1.2916813451,"205":1.3036175143,"206":2.09324443,"207":2.322030772,"208":2.8684464711,"209":3.0685739125,"210":3.4476306377,"211":3.3549360683,"212":2.9885381623,"213":1.9906627172,"214":1.536182967,"215":1.3309359368}}
</Forecast>
Riscv specific messages
Error in cpuinfo: processor architecture is not supported in cpuinfo
Error in cpuinfo: processor architecture is not supported in cpuinfo
Error in cpuinfo: processor architecture is not supported in cpuinfo
Error in cpuinfo: processor architecture is not supported in cpuinfo
cpu frequencies
root@pyafriscv:~/visionfive2-data# cpupower frequency-info
analyzing CPU 0:
driver: starfive-cpufreq
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 0 1 2 3
maximum transition latency: Cannot determine or is not supported.
hardware limits: 375 MHz - 1.50 GHz
available frequency steps: 375 MHz, 500 MHz, 750 MHz, 1.50 GHz
available cpufreq governors: conservative ondemand userspace powersave performance schedutil
current policy: frequency should be within 375 MHz and 1.50 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency: 375 MHz (asserted by call to hardware)
Fixed
New Hardware Architecture : RISC-V
This is a very experimental platform. PyAF intends to work on a not-yet-fully-manufactured hardware (#176 ).
The Sifive dev board (VisionFive 2) is planned through a kickstart project :
https://www.kickstarter.com/projects/starfive/visionfive-2/
Availablity : Dec. 2022
CPU features :