Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
ollama
Commits
f8889128
Commit
f8889128
authored
Mar 09, 2025
by
Michael Yang
Browse files
fix vision encoder
parent
9e4642e9
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
11 additions
and
5 deletions
+11
-5
model/models/gemma3/model_text.go
model/models/gemma3/model_text.go
+1
-1
model/models/gemma3/process_image.go
model/models/gemma3/process_image.go
+10
-4
No files found.
model/models/gemma3/model_text.go
View file @
f8889128
...
...
@@ -180,7 +180,7 @@ func (m *TextModel) Forward(ctx ml.Context, inputs, positions, outputs ml.Tensor
if
multimodal
!=
nil
{
visionOutputs
:=
multimodal
[
0
]
.
Multimodal
.
(
ml
.
Tensor
)
offset
:=
multimodal
[
0
]
.
Index
-
1
-
visionOutputs
.
Dim
(
1
)
hiddenState
=
hiddenState
.
Set
(
ctx
,
visionOutputs
,
offset
*
hiddenState
.
Stride
(
0
))
hiddenState
=
hiddenState
.
Set
(
ctx
,
visionOutputs
,
offset
*
hiddenState
.
Stride
(
1
))
}
for
i
,
layer
:=
range
m
.
Layers
{
...
...
model/models/gemma3/process_image.go
View file @
f8889128
...
...
@@ -20,11 +20,11 @@ func newImageProcessor(c ml.Config) ImageProcessor {
}
func
(
p
*
ImageProcessor
)
pack
(
img
image
.
Image
,
mean
,
std
[
3
]
float32
)
[]
float32
{
var
pixelVals
[]
float32
var
pixelVals
,
rVals
,
gVals
,
bVals
[]
float32
bounds
:=
img
.
Bounds
()
for
x
:=
bounds
.
Min
.
X
;
x
<
bounds
.
Max
.
X
;
x
++
{
for
y
:=
bounds
.
Min
.
Y
;
y
<
bounds
.
Max
.
Y
;
y
++
{
for
y
:=
bounds
.
Min
.
Y
;
y
<
bounds
.
Max
.
Y
;
y
++
{
for
x
:=
bounds
.
Min
.
X
;
x
<
bounds
.
Max
.
X
;
x
++
{
c
:=
img
.
At
(
x
,
y
)
r
,
g
,
b
,
_
:=
c
.
RGBA
()
rVal
:=
float32
(
r
>>
8
)
/
255.0
...
...
@@ -35,10 +35,16 @@ func (p *ImageProcessor) pack(img image.Image, mean, std [3]float32) []float32 {
gVal
=
(
gVal
-
mean
[
1
])
/
std
[
1
]
bVal
=
(
bVal
-
mean
[
2
])
/
std
[
2
]
pixelVals
=
append
(
pixelVals
,
rVal
,
gVal
,
bVal
)
rVals
=
append
(
rVals
,
rVal
)
gVals
=
append
(
gVals
,
gVal
)
bVals
=
append
(
bVals
,
bVal
)
}
}
pixelVals
=
append
(
pixelVals
,
rVals
...
)
pixelVals
=
append
(
pixelVals
,
gVals
...
)
pixelVals
=
append
(
pixelVals
,
bVals
...
)
return
pixelVals
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment