Package org.tribuo.math
Class LinearParameters
java.lang.Object
org.tribuo.math.LinearParameters
- All Implemented Interfaces:
Serializable
,FeedForwardParameters
,Parameters
,ProtoSerializable<org.tribuo.math.protos.ParametersProto>
A
Parameters
for producing linear models.- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Protobuf serialization version.Fields inherited from interface org.tribuo.protos.ProtoSerializable
DESERIALIZATION_METHOD_NAME, PROVENANCE_SERIALIZER
-
Constructor Summary
ConstructorDescriptionLinearParameters
(int numFeatures, int numLabels) Constructor.LinearParameters
(DenseMatrix weightMatrix) Constructs a LinearParameters wrapped around a weight matrix. -
Method Summary
Modifier and TypeMethodDescriptioncopy()
Returns a copy of the parameters.static LinearParameters
deserializeFromProto
(int version, String className, com.google.protobuf.Any message) Deserialization factory.boolean
Tensor[]
get()
Get a reference to the underlyingTensor
array.Tensor[]
This returns aDenseMatrix
the same size as the Parameters.Returns the weight matrix.Tensor[]
Generate the gradients for a particular feature vector given the loss and the per output gradients.int
hashCode()
Tensor[]
Merge together an array of gradient arrays.Generates an unnormalised prediction by leftMultiply'ing the weights with the incoming features.org.tribuo.math.protos.ParametersProto
Serializes this object to a protobuf.void
Set the underlyingTensor
array to newWeights.void
Apply gradients to the parameters.
-
Field Details
-
CURRENT_VERSION
public static final int CURRENT_VERSIONProtobuf serialization version.- See Also:
-
-
Constructor Details
-
LinearParameters
public LinearParameters(int numFeatures, int numLabels) Constructor. The number of features and the number of outputs must be fixed and known in advance.- Parameters:
numFeatures
- The number of features in the training dataset (excluding the bias).numLabels
- The number of outputs in the training dataset.
-
LinearParameters
Constructs a LinearParameters wrapped around a weight matrix.Used for serialization compatibility with Tribuo 4.0.
- Parameters:
weightMatrix
- The weight matrix to wrap.
-
-
Method Details
-
deserializeFromProto
public static LinearParameters deserializeFromProto(int version, String className, com.google.protobuf.Any message) throws com.google.protobuf.InvalidProtocolBufferException Deserialization factory.- Parameters:
version
- The serialized object version.className
- The class name.message
- The serialized data.- Returns:
- The deserialized object.
- Throws:
com.google.protobuf.InvalidProtocolBufferException
- If the protobuf could not be parsed from themessage
.
-
serialize
public org.tribuo.math.protos.ParametersProto serialize()Description copied from interface:ProtoSerializable
Serializes this object to a protobuf.- Specified by:
serialize
in interfaceProtoSerializable<org.tribuo.math.protos.ParametersProto>
- Returns:
- The protobuf.
-
predict
Generates an unnormalised prediction by leftMultiply'ing the weights with the incoming features.- Specified by:
predict
in interfaceFeedForwardParameters
- Parameters:
example
- A feature vector- Returns:
- A
DenseVector
containing a score for each label.
-
gradients
public Tensor[] gradients(com.oracle.labs.mlrg.olcut.util.Pair<Double, SGDVector> score, SGDVector features) Generate the gradients for a particular feature vector given the loss and the per output gradients. This parameters returns a single elementTensor
array.- Specified by:
gradients
in interfaceFeedForwardParameters
- Parameters:
score
- The Pair returned by the objective.features
- The feature vector.- Returns:
- A
Tensor
array with a singleMatrix
containing all gradients.
-
getEmptyCopy
This returns aDenseMatrix
the same size as the Parameters.- Specified by:
getEmptyCopy
in interfaceParameters
- Returns:
- A
Tensor
array containing a singleDenseMatrix
.
-
get
Description copied from interface:Parameters
Get a reference to the underlyingTensor
array.- Specified by:
get
in interfaceParameters
- Returns:
- The parameters.
-
getWeightMatrix
Returns the weight matrix.- Returns:
- The weight matrix.
-
set
Description copied from interface:Parameters
Set the underlyingTensor
array to newWeights.- Specified by:
set
in interfaceParameters
- Parameters:
newWeights
- New parameters to store in this object.
-
update
Description copied from interface:Parameters
Apply gradients to the parameters. Assumes that gradients is the same length as the parameters, and eachTensor
is the same size as the corresponding one from the parameters.The gradients are added to the parameters.
- Specified by:
update
in interfaceParameters
- Parameters:
gradients
- ATensor
array of updates, with the length equal toParameters.get()
.length.
-
merge
Description copied from interface:Parameters
Merge together an array of gradient arrays. Assumes the first dimension is the number of gradient arrays and the second dimension is the number of parameterTensor
s.For performance reasons this call may mutate the input gradient array, and may return a subset of those elements as the merge output.
- Specified by:
merge
in interfaceParameters
- Parameters:
gradients
- An array of gradient update arrays.size
- The number of elements of gradients to merge. Allows gradients to have unused elements.- Returns:
- A single
Tensor
array of the summed gradients.
-
copy
Description copied from interface:FeedForwardParameters
Returns a copy of the parameters.- Specified by:
copy
in interfaceFeedForwardParameters
- Returns:
- A copy of the model parameters.
-
equals
-
hashCode
public int hashCode()
-