| 138 | } |
| 139 | |
| 140 | std::string Attribute2String(const utils::Attribute &attr) { |
| 141 | std::stringstream ss; |
| 142 | if (std::holds_alternative<bool>(attr)) { |
| 143 | ss << (std::get<bool>(attr) ? "True" : "False"); |
| 144 | } else if (std::holds_alternative<float>(attr)) { |
| 145 | ss << std::setprecision(std::numeric_limits<float>::max_digits10) |
| 146 | << std::showpoint << std::get<float>(attr); |
| 147 | } else if (std::holds_alternative<double>(attr)) { |
| 148 | ss << std::setprecision(std::numeric_limits<double>::max_digits10) |
| 149 | << std::showpoint << std::get<double>(attr); |
| 150 | } else if (std::holds_alternative<int>(attr)) { |
| 151 | ss << std::get<int>(attr); |
| 152 | } else if (std::holds_alternative<int64_t>(attr)) { |
| 153 | ss << std::get<int64_t>(attr); |
| 154 | } else if (std::holds_alternative<std::string>(attr)) { |
| 155 | ss << "\"" << std::get<std::string>(attr) << "\""; |
| 156 | } else if (std::holds_alternative<std::vector<bool>>(attr)) { |
| 157 | ss << "[" + cinn::utils::Join(std::get<std::vector<bool>>(attr), ", ") + |
| 158 | "]"; |
| 159 | } else if (std::holds_alternative<std::vector<int>>(attr)) { |
| 160 | ss << "[" + cinn::utils::Join(std::get<std::vector<int>>(attr), ", ") + "]"; |
| 161 | } else if (std::holds_alternative<std::vector<int64_t>>(attr)) { |
| 162 | ss << "[" + cinn::utils::Join(std::get<std::vector<int64_t>>(attr), ", ") + |
| 163 | "]"; |
| 164 | } else if (std::holds_alternative<std::vector<float>>(attr)) { |
| 165 | ss << "[" + cinn::utils::Join(std::get<std::vector<float>>(attr), ", ") + |
| 166 | "]"; |
| 167 | } else if (std::holds_alternative<std::vector<double>>(attr)) { |
| 168 | ss << "[" + cinn::utils::Join(std::get<std::vector<double>>(attr), ", ") + |
| 169 | "]"; |
| 170 | } else if (std::holds_alternative<std::vector<std::string>>(attr)) { |
| 171 | auto attrs = std::get<std::vector<std::string>>(attr); |
| 172 | for (auto &str : attrs) { |
| 173 | str = "\"" + str + "\""; |
| 174 | } |
| 175 | ss << "[" + cinn::utils::Join(attrs, ", ") + "]"; |
| 176 | } else { |
| 177 | PADDLE_THROW(::common::errors::InvalidArgument( |
| 178 | "Unknown attribute data type! Please check.")); |
| 179 | } |
| 180 | return ss.str(); |
| 181 | } |
| 182 | |
| 183 | } // namespace utils |
| 184 | } // namespace cinn |
no test coverage detected