Spaces:
Build error
Build error
/* Copyright 2015 The TensorFlow Authors. All Rights Reserved. | |
Licensed under the Apache License, Version 2.0 (the "License"); | |
you may not use this file except in compliance with the License. | |
You may obtain a copy of the License at | |
http://www.apache.org/licenses/LICENSE-2.0 | |
Unless required by applicable law or agreed to in writing, software | |
distributed under the License is distributed on an "AS IS" BASIS, | |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
See the License for the specific language governing permissions and | |
limitations under the License. | |
==============================================================================*/ | |
namespace tensorflow { | |
// Forward declare protos so their symbols can be removed from .so exports | |
class AttrValue; | |
class NameAttrList; | |
// A human-readable rendering of attr_value, that is more concise than a | |
// text-format proto. | |
string SummarizeAttrValue(const AttrValue& attr_value); | |
// Generates an error if attr_value doesn't have the indicated attr type. | |
Status AttrValueHasType(const AttrValue& attr_value, StringPiece type); | |
// Converts a text proto value from "text" into the field of *out | |
// indicated by "type" (e.g. from the type field of an AttrDef). | |
// Examples: | |
// * If type:"int" and text:"-14", then *out is set to "i: -14" | |
// * If type:"list(string)" and text:"['foo', 'bar']", | |
// then *out is set to "list { s: ['foo', 'bar'] }" | |
// Returns true on success. | |
bool ParseAttrValue(StringPiece type, StringPiece text, AttrValue* out); | |
// Sets *out based on the type of value. | |
void SetAttrValue(const string& value, AttrValue* out); | |
void SetAttrValue(const char* value, AttrValue* out); | |
void SetAttrValue(StringPiece value, AttrValue* out); | |
void SetAttrValue(int64 value, AttrValue* out); | |
void SetAttrValue(int32 value, AttrValue* out); | |
void SetAttrValue(float value, AttrValue* out); | |
void SetAttrValue(double value, AttrValue* out); | |
void SetAttrValue(bool value, AttrValue* out); | |
void SetAttrValue(DataType value, AttrValue* out); | |
void SetAttrValue(const TensorShape& value, AttrValue* out); | |
void SetAttrValue(const TensorShapeProto& value, AttrValue* out); | |
void SetAttrValue(const PartialTensorShape& value, AttrValue* out); | |
void SetAttrValue(const Tensor& value, AttrValue* out); | |
void SetAttrValue(const TensorProto& value, AttrValue* out); | |
void SetAttrValue(const NameAttrList& value, AttrValue* out); | |
void SetAttrValue(gtl::ArraySlice<string> value, AttrValue* out); | |
void SetAttrValue(gtl::ArraySlice<const char*> value, AttrValue* out); | |
void SetAttrValue(gtl::ArraySlice<StringPiece> value, AttrValue* out); | |
void SetAttrValue(gtl::ArraySlice<int64> value, AttrValue* out); | |
void SetAttrValue(gtl::ArraySlice<int32> value, AttrValue* out); | |
void SetAttrValue(gtl::ArraySlice<float> value, AttrValue* out); | |
void SetAttrValue(gtl::ArraySlice<double> value, AttrValue* out); | |
void SetAttrValue(gtl::ArraySlice<bool> value, AttrValue* out); | |
void SetAttrValue(const std::vector<bool>& value, AttrValue* out); | |
void SetAttrValue(std::initializer_list<bool> value, AttrValue* out); | |
void SetAttrValue(DataTypeSlice value, AttrValue* out); | |
void SetAttrValue(gtl::ArraySlice<TensorShape> value, AttrValue* out); | |
void SetAttrValue(gtl::ArraySlice<TensorShapeProto> value, AttrValue* out); | |
void SetAttrValue(gtl::ArraySlice<PartialTensorShape> value, AttrValue* out); | |
void SetAttrValue(gtl::ArraySlice<Tensor> value, AttrValue* out); | |
void SetAttrValue(gtl::ArraySlice<TensorProto> value, AttrValue* out); | |
void SetAttrValue(gtl::ArraySlice<NameAttrList> value, AttrValue* out); | |
void SetAttrValue(const AttrValue& value, AttrValue* out); | |
// Returns true if a and b have the same value. | |
bool AreAttrValuesEqual(const AttrValue& a, const AttrValue& b); | |
// Returns a hash of `a` that is consistent with AreAttrValuesEqual. In other | |
// words, if two AttrValues compare equal according to AreAttrValuesEqual, | |
// they will have the same hash value. | |
// Similarly to protobuf deterministic serialization, hash value is | |
// guaranteed to be stable only for a given binary. In particular, one should | |
// probably not persist the returned value. | |
uint64 AttrValueHash(const AttrValue& a); | |
// Returns true if "val" has a placeholder. | |
bool HasPlaceHolder(const AttrValue& val); | |
// SubstitutePlaceholders recursively replaces placeholders in 'value' | |
// with an attr value by calling SubstituteFunc. Returns true iff all | |
// placeholders in "value" are replaced with a value. | |
// | |
// SubstituteFunc is given a placeholder string. If the placeholder is | |
// unknown, SubstituteFunc returns false. Otherwise, overwrites the | |
// attr value and returns true. | |
using SubstituteFunc = std::function<bool(const string&, AttrValue*)>; | |
bool SubstitutePlaceholders(const SubstituteFunc& substitute, AttrValue* value); | |
} // namespace tensorflow | |