38 const std::vector<std::vector<float>>&
data)
const
41 std::vector<std::vector<float>> scaledData;
42 for (
auto& particleData :
data) {
43 if (particleData.size() != mMeans.size()) {
46 std::vector<float> scaledParticleData(mMeans.size(), 0);
47 for (
size_t i = 0;
i < mMeans.size(); ++
i) {
48 scaledParticleData.at(
i) = (particleData[
i] - mMeans[
i]) / mScales[
i];
50 scaledData.emplace_back(std::move(scaledParticleData));
76 const size_t batchSize)
78 std::vector<std::array<long, 5>> results;
80 auto flattedImageVector =
value.GetTensorData<
float>();
82 for (
size_t batch = 0; batch < batchSize; ++batch) {
84 for (
int i = 0;
i < 44;
i++) {
85 for (
int j = 0;
j < 44;
j++) {
87 if (
i < 22 &&
j < 22) {
88 channels[0] += std::expm1(flattedImageVector[
j +
i * 44 + (batch * 44 * 44)]);
89 }
else if (i < 22 && j >= 22) {
90 channels[1] += std::expm1(flattedImageVector[
j +
i * 44 + (batch * 44 * 44)]);
91 }
else if (
i >= 22 &&
j < 22) {
92 channels[2] += std::expm1(flattedImageVector[
j +
i * 44 + (batch * 44 * 44)]);
93 }
else if (
i >= 22 &&
j >= 22) {
94 channels[3] += std::expm1(flattedImageVector[
j +
i * 44 + (batch * 44 * 44)]);
97 channels[4] += std::expm1(flattedImageVector[
j +
i * 44 + (batch * 44 * 44)]);
101 results.emplace_back(std::array<long, 5>{0});
102 for (
int ch = 0; ch < 5; ++ch) {
103 results.back()[ch] = std::lround(
channels[ch]);
107 return std::move(results);